js中null和undefined的區別
阿新 • • 發佈:2019-01-27
JavaScript有兩個特殊的原始值:null和undefined,它們不是數字、字串和布林值。它們通常分別代表了各自特殊型別的唯一的成員,也就說是它自有型別的唯一的一個成員。從技術上講,只有Javascript物件才能擁有方法,數字、字串和布林值都可以擁有自己的方法,但是null和undefined卻無法擁有方法的值。
null是JavaScript的關鍵字,表示一個特殊值,在IE5.5及其以上版本瀏覽器,undefined被定義為全域性變數,作為一個關鍵字被JavaScript支援。
null和undefined都是表示“值的空缺”,用相等運算子進行比較,認為它們是相等的,在if語句中null和undefined都會轉為false,可見 null和undefined非常類似,但是我們可以用全等運算子(===)和typeof運算子來區分它們的異同
如果一個變數被宣告,但是還未被賦值,那麼會返回undefined,可以理解為該變數缺少值,用未定義的值表示更深層次的“空值”,它是變數的一種取值,表示變數還沒有初始化。
值undefined不同於未定義的值,我們用typeof運算子可以區分它們之間的不同,如:
對於未宣告的變數b來說,如果使用其他運算子來對其進行計算的話,都會引發錯誤,因為其他運算子只能夠用於以及宣告的變數,像下面這樣寫提示未定義的錯誤資訊:
如果要查詢物件屬性或陣列元素的值時,返回undefined,則說明這個屬性或者元素不存在。
如果函式沒有返回任何值,則預設返回undefined,如:
引用沒有提供實參的函式形參的值時候也會得到undefined,undefined是預定義的全域性變數,它的值表示“未定義”。