成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Js基礎(chǔ)——數(shù)據(jù)類型之Null和Undefined

jubincn / 439人閱讀

摘要:原始值就是值本身不可改變,并且沒有方法和屬性。操作的時(shí)候看似操作原始值,其實(shí)是操作它的副本。代表空指針,就是沒有對象存在,它不是全局對象的屬性。這也是為什么需要替代它的原因。別忘了它們是不同的類型栗子參考資料

原始值就是值本身不可改變,并且沒有方法和屬性。操作的時(shí)候看似操作原始值,其實(shí)是操作它的副本。

Null 代表空指針,就是沒有對象存在,它不是全局對象的屬性。Null type對應(yīng)唯一的字面量值null
Undefined 是全局對象的屬性,它對應(yīng)的唯一字面量值undefined
出現(xiàn)的情況:
1.變量聲明沒有賦值,變量的默認(rèn)值是undefined
2.函數(shù)沒有return,那么默認(rèn)返回值是undefined
3.方法或是語句中沒有賦值的變量,返回值是undefined
栗子?

不要把undefined作為變量名賦值,這樣不僅會(huì)改變undefined的值,也會(huì)改變它的類型,這種情況的驗(yàn)證條件是不在全局環(huán)境中。undefined并不是關(guān)鍵字,所以避免這種情況

如果要判斷一個(gè)值是不是undefined,有三種方式
1.直接比較值跟字面量undefined,這是比較要用全等===
2.就是用typeof 值跟類型’undefined’比較,這個(gè)可以在變量沒有聲明的情況下判斷,而不會(huì)出錯(cuò)
3.用void 0代替undefined
栗子?

參考資料:https://developer.mozilla.org...
https://developer.mozilla.org...

擴(kuò)展補(bǔ)充:
用void 0 代替undefined很好,為什么要代替undefined?為什么是void 0而不是其他的?
原因:1.undefined在全局環(huán)境下,已經(jīng)是只讀屬性不可改變,但是在塊作用域里還是可以改變的,因?yàn)樗皇潜A絷P(guān)鍵字,所以無法避免被重新賦值改變。這也是為什么需要替代它的原因。
2.因?yàn)関oid這個(gè)操作符,后面跟上任何的表達(dá)式或是語句,返回值都是undefined,而void 0是所有表達(dá)式中最短的一個(gè),最完美的是void 0還不能重寫
3.在這里我也終于明白了,當(dāng)初想讓鏈接跳轉(zhuǎn)失效,在a標(biāo)簽這樣寫的用意,就是因?yàn)関oid(0)返回為undefined


  Click here to do nothing

4.也理解了在一些源碼中,看到函數(shù)關(guān)鍵字function的前面會(huì)有void,它可以迫使函數(shù)聲明變成函數(shù)表達(dá)式
栗子?

參考資料:https://developer.mozilla.org...
http://web.jobbole.com/86145/

Null vs Undefined
區(qū)別:null表示’空’的對象,轉(zhuǎn)數(shù)值為0,undefined表示‘此處無意義’的原始值,轉(zhuǎn)數(shù)值為NaN
undefined強(qiáng)調(diào)’不存在’,適用的場景:
比如:
1.不存在的初始值
2.不存在的對象屬性,或是數(shù)組項(xiàng)
3.不存在的函數(shù)返回值
4.不存在的函數(shù)調(diào)用參數(shù)
栗子?

null的適用場景:
1.遍歷一個(gè)不存在的dom節(jié)點(diǎn)
2.在頁面銷毀的時(shí)候,把不用的對象賦值為null

二者同為沒有值的代表,在判斷中都是false,但你要是想當(dāng)然覺得它們相等,那就上當(dāng)了。別忘了它們是不同的類型
栗子?

參考資料:https://yanhaijing.com/javasc...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94477.html

相關(guān)文章

  • js基礎(chǔ)變量類型計(jì)算

    摘要:值類型與引用類型值類型引用類型值類型引用類型類型轉(zhuǎn)換字符串拼接運(yùn)算符語句邏輯運(yùn)算字符串拼接運(yùn)算符語句邏輯運(yùn)算符判斷一個(gè)變量會(huì)被當(dāng)做還是區(qū)分和會(huì)發(fā)生類型轉(zhuǎn)換,沒有類型轉(zhuǎn)換。 1.數(shù)據(jù)類型 ECMAScript定義了6種數(shù)據(jù)類型,包括: 基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number、String; 復(fù)雜數(shù)據(jù)類型:Object; 2.typeof操作符 typ...

    LiuRhoRamen 評論0 收藏0
  • javascript 基礎(chǔ)類型轉(zhuǎn)換

    摘要:類型轉(zhuǎn)換和表示一個(gè)空對象。如果有其他類型想轉(zhuǎn)換為或者類型,直接賦值就可以了。都能隱式的把數(shù)據(jù)類型轉(zhuǎn)為類型。。。時(shí)間時(shí)間二數(shù)字類型轉(zhuǎn)換為字符串默認(rèn)是進(jìn)制是一個(gè)對象類型,所以其他類型轉(zhuǎn)化為通常都是。 前言 javaScript是一門可以自由進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的編程語言,類型轉(zhuǎn)換是javaScript很重要的特色(坑點(diǎn)很多!!!),大家想以后寫出更多嚴(yán)謹(jǐn)?shù)拇a(少出一些莫名其妙的Bug),還是...

    timger 評論0 收藏0
  • 前端面經(jīng)整理JSCSS

    摘要:作為對象原型鏈的終點(diǎn)。調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于。它可以用于引用該函數(shù)的函數(shù)體內(nèi)當(dāng)前正在執(zhí)行的函數(shù)。 一 JS 二 CSS 一 JS ==和===的區(qū)別 ===叫做嚴(yán)格運(yùn)算符 ==叫做相等運(yùn)算符嚴(yán)格運(yùn)算符比較時(shí)不僅僅比較數(shù)值還要比較數(shù)據(jù)類型是否一樣相等運(yùn)算符在比較相同類型的數(shù)據(jù)時(shí),與嚴(yán)格相等運(yùn)算符完全一樣。 在比較不同類型的數(shù)據(jù)時(shí),相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,...

    stonezhu 評論0 收藏0
  • 前端面經(jīng)整理JSCSS

    摘要:作為對象原型鏈的終點(diǎn)。調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于。它可以用于引用該函數(shù)的函數(shù)體內(nèi)當(dāng)前正在執(zhí)行的函數(shù)。 一 JS 二 CSS 一 JS ==和===的區(qū)別 ===叫做嚴(yán)格運(yùn)算符 ==叫做相等運(yùn)算符嚴(yán)格運(yùn)算符比較時(shí)不僅僅比較數(shù)值還要比較數(shù)據(jù)類型是否一樣相等運(yùn)算符在比較相同類型的數(shù)據(jù)時(shí),與嚴(yán)格相等運(yùn)算符完全一樣。 在比較不同類型的數(shù)據(jù)時(shí),相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,...

    lvzishen 評論0 收藏0
  • 我在那日界線奔跑JS---基礎(chǔ)

    摘要:基本點(diǎn)數(shù)據(jù)結(jié)構(gòu)本來制作的是腦圖,思維導(dǎo)圖,導(dǎo)出來不好上傳,就這樣吧基本的數(shù)據(jù)類型區(qū)別區(qū)別表示聲明了一個(gè)變量,沒有初始化的情況下輸出該變量為以及未聲明直接一個(gè)未聲明的變量結(jié)果也為中的變量是弱類型的,中聲明一個(gè)即使未賦值也會(huì)自動(dòng)初始化為類型的并 基本點(diǎn) 數(shù)據(jù)結(jié)構(gòu) 本來制作的是腦圖,思維導(dǎo)圖,導(dǎo)出來不好上傳,就這樣md+png吧 showImg(https://segmentfault.co...

    Profeel 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<