淺談JavaScript中null和undefined
先說null,它表示一個特殊值,常用來描述“空值”。對null執(zhí)行typeof運算,結(jié)果返回字符串“object”,也就是說,可以將null認(rèn)為是一個特殊的對象值,含義是“非對象”(感覺怪怪的)。實際上,通常認(rèn)為null是它自有類型的唯一一個成員,它可以表示數(shù)字、字符串和對象是“無值”的。
JavaScript還有第二個值來表示值的空缺,就是undefined啦,用未定義的值表示更深層次的“空值”。undefined出現(xiàn)有4種情況:①變量聲明但沒有初始化時②要查詢的對象屬性或數(shù)組的元素不存在時③如果函數(shù)沒有任何返回值,則返回undefined④引用沒有提供實參的函數(shù)形參的值也只會得到undefined。
兩者相同點:①正如前面所說,它們都是“假值”,也就是說JavaScript期望使用一個布爾值時,它們都會被轉(zhuǎn)換成false;②它們兩個都不包含任何屬性和方法。
兩者不同點:①null是JavaScript語言的關(guān)鍵字,而undefined是JavaScript預(yù)定義的全局變量,不是關(guān)鍵字。并且,在ECMAScript 3中,undefined是可讀、可寫的變量,可以給它賦任何值,這個錯誤在ECMAScript 5中做了修正,在該版本中undefined是只讀的(看到網(wǎng)上說現(xiàn)在的瀏覽器基本上都是支持ECMAScript 5了,不知道為什么我在瀏覽器中給undefined賦值沒有報錯,只是并沒有改變它的值);②執(zhí)行typeof運算,null返回“object”字符串,undefined返回“undefined”字符串。
至于把null和undefined做比較,null == undefined 返回true,null === undefined 返回false??梢哉J(rèn)為undefined是表示系統(tǒng)級的、出乎意料的或類似錯誤的值的空缺,而null是表示程序級的、正常的或在意料之中的值的空缺。如果想把它們賦值給變量或?qū)傩曰蛘弋?dāng)做參數(shù)傳入函數(shù),最好選擇使用null。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
微信小程序教程系列之設(shè)置標(biāo)題欄和導(dǎo)航欄(7)
這篇文章主要為大家詳細(xì)介紹了微信小程序教程系列之標(biāo)題欄和導(dǎo)航欄的設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
JavaScript中Cookie的使用之如何設(shè)置失效時間
這篇文章主要介紹了JavaScript中Cookie的使用之如何設(shè)置失效時間問題,具有很好的參考價值,希望對大家有所幫助。2022-12-12
一篇文章教你用JavaScript使用流程控制打印九九乘法表
這篇文章主要為大家詳細(xì)介紹了JavaScript使用流程控制打印九九乘法表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02
關(guān)閉瀏覽器時提示onbeforeunload事件
這篇文章主要介紹了關(guān)閉瀏覽器時提示onbeforeunload事件,有需要的朋友可以參考一下2013-12-12

