首頁 >web前端 >js教程 >淺談JavaScript中null和undefined_javascript技巧

淺談JavaScript中null和undefined_javascript技巧

WBOY
WBOY原創
2016-05-16 15:50:501307瀏覽

  先說null,它表示一個特殊值,常用來描述「空值」。對null執行typeof運算,結果傳回字串“object”,也就是說,可以將null認為是一個特殊的物件值,意思是“非物件”(感覺怪怪的)。實際上,通常認為null是它自有類型的唯一一個成員,它可以表示數字、字串和物件是「無值」的。

  JavaScript還有第二個值來表示值的空缺,就是undefined啦,用未定義的值表示更深層的「空值」。 undefined出現有4種情況:①變數宣告但沒有初始化時②要查詢的物件屬性或陣列的元素不存在時③如果函數沒有任何傳回值,則傳回undefined④引用沒有提供實參的函數形參的值也只會得到undefined。

  兩者相同點:①正如前面所說,它們都是“假值”,也就是說JavaScript期望使用一個布林值時,它們都會被轉換成false;②它們兩個都不包含任何屬性和方法。

  兩者不同點:①null是JavaScript語言的關鍵字,而undefined是JavaScript預先定義的全域變量,不是關鍵字。並且,在ECMAScript 3中,undefined是可讀、可寫的變量,可以給它賦任何值,這個錯誤在ECMAScript 5中做了修正,在該版本中undefined是只讀的(看到網上說現在的瀏覽器基本上都是支援ECMAScript 5了,不知道為什麼我在瀏覽器中給undefined賦值沒有報錯,只是並沒有改變它的值);②執行typeof運算,null返回“object”字符串,undefined返回“ undefined”字串。

  至於把null和undefined做比較,null == undefined 回傳true,null === undefined 回傳false。可以認為undefined是表示系統級的、出乎意料的或類似錯誤的值的空缺,而null是表示程序級的、正常的或在意料之中的值的空缺。如果想把它們賦值給變數或屬性或當做參數傳入函數,最好選擇使用null。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn