淺談JavaScript中null和undefined
先說(shuō)null,它表示一個(gè)特殊值,常用來(lái)描述“空值”。對(duì)null執(zhí)行typeof運(yùn)算,結(jié)果返回字符串“object”,也就是說(shuō),可以將null認(rèn)為是一個(gè)特殊的對(duì)象值,含義是“非對(duì)象”(感覺(jué)怪怪的)。實(shí)際上,通常認(rèn)為null是它自有類型的唯一一個(gè)成員,它可以表示數(shù)字、字符串和對(duì)象是“無(wú)值”的。
JavaScript還有第二個(gè)值來(lái)表示值的空缺,就是undefined啦,用未定義的值表示更深層次的“空值”。undefined出現(xiàn)有4種情況:①變量聲明但沒(méi)有初始化時(shí)②要查詢的對(duì)象屬性或數(shù)組的元素不存在時(shí)③如果函數(shù)沒(méi)有任何返回值,則返回undefined④引用沒(méi)有提供實(shí)參的函數(shù)形參的值也只會(huì)得到undefined。
兩者相同點(diǎn):①正如前面所說(shuō),它們都是“假值”,也就是說(shuō)JavaScript期望使用一個(gè)布爾值時(shí),它們都會(huì)被轉(zhuǎn)換成false;②它們兩個(gè)都不包含任何屬性和方法。
兩者不同點(diǎn):①null是JavaScript語(yǔ)言的關(guān)鍵字,而undefined是JavaScript預(yù)定義的全局變量,不是關(guān)鍵字。并且,在ECMAScript 3中,undefined是可讀、可寫(xiě)的變量,可以給它賦任何值,這個(gè)錯(cuò)誤在ECMAScript 5中做了修正,在該版本中undefined是只讀的(看到網(wǎng)上說(shuō)現(xiàn)在的瀏覽器基本上都是支持ECMAScript 5了,不知道為什么我在瀏覽器中給undefined賦值沒(méi)有報(bào)錯(cuò),只是并沒(méi)有改變它的值);②執(zhí)行typeof運(yùn)算,null返回“object”字符串,undefined返回“undefined”字符串。
至于把null和undefined做比較,null == undefined 返回true,null === undefined 返回false??梢哉J(rèn)為undefined是表示系統(tǒng)級(jí)的、出乎意料的或類似錯(cuò)誤的值的空缺,而null是表示程序級(jí)的、正常的或在意料之中的值的空缺。如果想把它們賦值給變量或?qū)傩曰蛘弋?dāng)做參數(shù)傳入函數(shù),最好選擇使用null。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- Javascript基礎(chǔ)_簡(jiǎn)單比較undefined和null 值
- JavaScript必知必會(huì)(二) null 和undefined
- 辨析JavaScript中的Undefined類型與null類型
- Javascript基礎(chǔ)教程之比較null和undefined值
- 詳解javascript中原始數(shù)據(jù)類型Null和Undefined
- 跟我學(xué)習(xí)javascript的undefined與null
- javascript中undefined與null的區(qū)別
- javascript類型系統(tǒng)——undefined和null全面了解
相關(guān)文章
clipboard.js在移動(dòng)端復(fù)制失敗的解決方法
最近在使用clipboard.js碰到的一個(gè)小問(wèn)題,通過(guò)查找相關(guān)資料解決了,所以下面這篇文章主要給大家介紹了關(guān)于clipboard.js在移動(dòng)端復(fù)制失敗的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06詳解bootstrap的modal-remote兩種加載方式【強(qiáng)化】
本篇文章主要介紹了詳解bootstrap的modal-remote兩種加載方式【強(qiáng)化】,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01JS模態(tài)窗口返回值兼容問(wèn)題的完美解決方法
下面小編就為大家?guī)?lái)一篇JS模態(tài)窗口返回值兼容問(wèn)題的完美解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05Android 自定義view仿微信相機(jī)單擊拍照長(zhǎng)按錄視頻按鈕
這篇文章主要介紹了Android 自定義view仿微信相機(jī)單擊拍照長(zhǎng)按錄視頻按鈕,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07js實(shí)現(xiàn)年月日表單三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)年月日表單三級(jí)聯(lián)動(dòng),生日欄表單三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03JavaScript條件判斷_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript使用if () { ... } else { ... }來(lái)進(jìn)行條件判斷。下通過(guò)語(yǔ)句代碼給大家詳細(xì)介紹js 條件判斷的基本知識(shí),需要的的朋友參考下吧2017-06-06