<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:17:39
        文檔

        淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧

        淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧:在js中常見的六種數(shù)據(jù)類型:String類型、Null類型、Number類型、Boolean類型、Object類型。 1、typeof的注意點(diǎn) 涉及到數(shù)據(jù)類型,不免會(huì)提到,操作符 typeof。要注意: 1、typeof是操作符,不是方法。雖然我們經(jīng)常使用typeof()的方式獲取對(duì)象的數(shù)據(jù)類
        推薦度:
        導(dǎo)讀淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧:在js中常見的六種數(shù)據(jù)類型:String類型、Null類型、Number類型、Boolean類型、Object類型。 1、typeof的注意點(diǎn) 涉及到數(shù)據(jù)類型,不免會(huì)提到,操作符 typeof。要注意: 1、typeof是操作符,不是方法。雖然我們經(jīng)常使用typeof()的方式獲取對(duì)象的數(shù)據(jù)類

        在js中常見的六種數(shù)據(jù)類型:String類型、Null類型、Number類型、Boolean類型、Object類型。

        1、typeof的注意點(diǎn)

        涉及到數(shù)據(jù)類型,不免會(huì)提到,操作符 typeof。要注意:

        1、typeof是操作符,不是方法。雖然我們經(jīng)常使用typeof()的方式獲取對(duì)象的數(shù)據(jù)類型。

        2、對(duì) null 取typeof 是 object(這是因?yàn)閚ull是 空的對(duì)象引用),對(duì)函數(shù)取 typeof 是 function

        代碼如下:
        alert(typeof null); //返回 object
        function demo(){
        alert('demo');
        }
        alert(typeof demo); //返回 function

        2、為各種數(shù)據(jù)類型的對(duì)象變量設(shè)置初始值

        注意,如果Object類型的 對(duì)象變量開始不知道賦值什么,不要 var demo={};最好是 設(shè)置成null;

        代碼如下:
        var d2=null;
        d2={'key':"shit"};

        var d3='';//字符串 默認(rèn)
        var d4=0; //Number 類型 初始值設(shè)置為0
        var d5=null; //對(duì)object 類型設(shè)置初始默認(rèn)值

        3、undefined 和null 的區(qū)別和注意點(diǎn)

        1、如果用 “==” 進(jìn)行比較,他們是相等的,因?yàn)楸容^的是值

        2、區(qū)分他們有兩種方法(他們的核心都是比較他們的 數(shù)據(jù)類型)

        1)使用typeof 將他們區(qū)分開

        2)使用全等“===” :比較的是 值和 數(shù)據(jù)類型,只有全都相同 才返回 true

        代碼如下:
        alert(undefined == null); //true
        alert(typeof undefined == typeof null); //false
        alert(undefined === null); //true

        4、Boolean的注意點(diǎn)

        1、true 和 1 比較是相同,false 和 0 比較是相同(是 “==” 比較),因?yàn)閮?nèi)部會(huì)實(shí)現(xiàn) 數(shù)據(jù)類型的 轉(zhuǎn)化,將true 轉(zhuǎn)換成1,將false 轉(zhuǎn)換成0. js 內(nèi)部有很多數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換,這是大家一定要注意的。后面還會(huì)提到很多。 但是使用“===” 就不相等了,因?yàn)?他們的數(shù)據(jù)類型是不等的。

        2、顯示轉(zhuǎn)換成Boolean,使用Boolean()方法顯示轉(zhuǎn)換,需要注意的是各種數(shù)據(jù)類型,什么時(shí)候轉(zhuǎn)換成true 什么時(shí)候轉(zhuǎn)換成 false

        1)String類型,只要不是 空字符串 都會(huì) 轉(zhuǎn)換成 true

        2)Number類型,只要不是 0 ,即使是 負(fù)數(shù),都會(huì)轉(zhuǎn)換成 true

        3)Object類型,只要 不是 null 類型,都會(huì)轉(zhuǎn)換成true

        4)Undefined類型,都會(huì)轉(zhuǎn)換成 false

        我就不做演示,大家可以自己動(dòng)手試一下。

        3、(***)if() 語(yǔ)句的 () 內(nèi)部就是調(diào)用了 Boolean函數(shù)

        5、Number類型注意點(diǎn)

        1、float類型 不能做精準(zhǔn)運(yùn)算

        代碼如下:
        alert(0.1+0.2);//返回 0.300000000000000004

        2、 支持 科學(xué)計(jì)數(shù)法 運(yùn)算

        3、NaN(Not a Number)

        1)var d=0/0; 注意:在js 里 是不會(huì)報(bào)錯(cuò)的,而是返回 NaN

        2)可以通過(guò)Number.NaN 來(lái)獲取

        3)NaN和 任何 對(duì)象做運(yùn)算都會(huì)返回 NaN

        4)isNaN()判斷是不是 NaN

        代碼如下:
        alert(isNaN(NaN));//true
        alert(isNaN(12));//false
        alert(isNaN('123'));//false:因?yàn)?字符串類型 的數(shù)字 可以自動(dòng)轉(zhuǎn)換成 數(shù)字
        alert(isNaN('lew'));//true
        alert(isNaN(false));//(*)false:因?yàn)?bool 值 可以轉(zhuǎn)換成數(shù)字,true變1,,false 變 0

        5)isNaN()內(nèi)部執(zhí)行原理:同樣適用于對(duì)象。實(shí)現(xiàn)原理:首相調(diào)用對(duì)象的valueOf()方法,如果能轉(zhuǎn)換成數(shù)字就直接做判斷;如果不能就再調(diào)用toString()方法,然后測(cè)試返回值。

        valueOf()內(nèi)部調(diào)用了toObject()方法,兩個(gè)方法的 內(nèi)部執(zhí)行的原理:如下圖:

        代碼如下:
        var box={
        //重寫 box 對(duì)象的 toString() 方法
        toString:function(){
        return '123';
        }
        };
        alert(isNaN(box));//false
        alert(box);//123 alert()內(nèi)部也是 先調(diào)用了 對(duì)象的 valueOf() 然后調(diào)用 toString()方法

        6)將其他數(shù)據(jù)類型轉(zhuǎn)換成Number類型

        含有三個(gè)函數(shù):Number():可以針對(duì)所有的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換;parseInt()和parseFloat() 只 針對(duì) 字符串進(jìn)行轉(zhuǎn)化。

        代碼如下:
        alert(Number('123'));//123
        alert(Number('0234'));//234
        alert(Number(true));//1
        alert(Number(null));//(**)0

        //除了 上面的 其他的都是 返回 NaN
        alert(Number(undefined))//NaN

        Number()內(nèi)部實(shí)現(xiàn)的原理:同isNaN() 也是先調(diào)用 valueOf() 然后調(diào)用 toString()。所以可想而知,性能是比較差的。所以所過(guò)只要要被轉(zhuǎn)型的對(duì)象是字符串的話,就調(diào)用 parseInt() 或者 parseFloat()因?yàn)樗麄儍?nèi)部不需要對(duì)類型做判斷。

        parseInt() 和 parseFloat() 調(diào)用注意:從第一個(gè) 為數(shù)字的 字符開始 一直到 第一個(gè)部位數(shù)字的字符 的前一個(gè)數(shù)字 的這部分字符串 轉(zhuǎn)換成數(shù)字

        代碼如下:
        alert(parseInt('123leb'));//123
        alert(parseInt('123leb345'));//123
        alert(parseInt('len234'));//NaN

        當(dāng)parseInt()里面的參數(shù)是 float類型的 那么只 取得 數(shù)字的 整數(shù)部分

        代碼如下:
        alert(parseInt(56.12));//56

        6、String類型

        1)(*重要*)在ECMAScript中 字符串有不變性:字符串創(chuàng)建之后就不會(huì)再改變。

        要改變一個(gè)已經(jīng)被賦值的字符串變量,首先要先銷毀 變量中 字符串,然后再用一個(gè)包含 新值的字符串 填充變量。

        代碼如下:
        var d='hello';
        d=d+' shit';//執(zhí)行過(guò)程:先將 'hello'賦值一份,然后將 d 中的字符串清空,將字符串 'hello' 和 ' shit'進(jìn)行拼接,然后賦值給 d 變量。(所以 字符串 的值 一旦 被 創(chuàng)建之后 就不會(huì) 改變)

        2)toString()方法 將其他數(shù)據(jù)類型轉(zhuǎn)換成 String類型。但是如果對(duì) null 或undefined 進(jìn)行操作的話就會(huì)報(bào)錯(cuò)。

        3)但是String()方法同樣能實(shí)現(xiàn) toString()的效果,但是 可以對(duì) null 和undefined進(jìn)行操作。

        內(nèi)部原理:先 調(diào)用 toString(),如果可以轉(zhuǎn)換成字符串,就將結(jié)果直接返回。否,再進(jìn)行判斷是 null 還是 undefined,然后返回‘null' 或 ‘undefined'

        總結(jié):如果知道 變量不可能是 null 或 undefined,就使用 toString()性能比 String(),因?yàn)?String()內(nèi)部還要做判斷,所以有損性能。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧

        淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)_javascript技巧:在js中常見的六種數(shù)據(jù)類型:String類型、Null類型、Number類型、Boolean類型、Object類型。 1、typeof的注意點(diǎn) 涉及到數(shù)據(jù)類型,不免會(huì)提到,操作符 typeof。要注意: 1、typeof是操作符,不是方法。雖然我們經(jīng)常使用typeof()的方式獲取對(duì)象的數(shù)據(jù)類
        推薦度:
        標(biāo)簽: js javascript 注意點(diǎn)
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲高清视频免费| 亚洲国产成人私人影院| 久久精品国产亚洲AV未满十八| 亚洲成人在线免费观看| 精品亚洲A∨无码一区二区三区| 久久青青草原国产精品免费| 亚洲女同成av人片在线观看| 91在线免费视频| 国精无码欧精品亚洲一区| 成全高清在线观看免费| 亚洲国产一区在线| 很黄很黄的网站免费的| 亚洲区日韩精品中文字幕| 四只虎免费永久观看| 久久国产免费直播| 亚洲va无码va在线va天堂| 99re6热视频精品免费观看| 亚洲av无码电影网| 永久免费视频v片www| 4hu四虎免费影院www| 亚洲精品线在线观看| 永久免费毛片在线播放| 婷婷亚洲综合一区二区| 亚洲综合AV在线在线播放| 日本免费一区二区三区| 亚洲人成网亚洲欧洲无码| 亚洲男人的天堂一区二区| 午夜精品免费在线观看| 国产亚洲精品VA片在线播放| 亚洲国产电影av在线网址| 成人性生交大片免费看中文| 亚洲精品伊人久久久久| 亚洲成a人片在线观看久| 99视频精品全部免费观看| 亚洲日韩乱码中文字幕| 亚洲午夜久久久久久久久久| av免费不卡国产观看| EEUSS影院WWW在线观看免费| 亚洲制服丝袜一区二区三区| 亚洲AV日韩精品一区二区三区| 小日子的在线观看免费|