無法獲取未定義或 null 引用的屬性“length”_JavaScript 的 Undefined、NaN和Null
阿新 • • 發佈:2021-02-19
技術標籤:無法獲取未定義或 null 引用的屬性“length”
一、Undefined
undefined 屬性用於存放 JavaScript 中未定義的值
它表示變數宣告過但並未賦過值
提示:無論什麼情況下都沒有必要把一個變數的值顯式地設定為undefined,但是設定這個值為Null可以釋放這個物件的記憶體,把此變數的指標設定為空。
var person; // 值為 undefined(空), 型別是undefined
二、NaN
NaN 即非數值(Not a Number)
NaN 屬性 與 Number.Nan 屬性相同。
提示:
深入探討:參考維基百科
NaN(NotaNumber,非數)是電腦科學中數值資料型別的一類值,表示未定義或不可表示的值。常在浮點數運算中使用。首次引入NaN的是1985年的IEEE 754浮點數標準。
這也就解釋了下面的現象 typeof NaN == ‘number’
console.log(typeof NaN);
//輸出 number
所以這裡不是js設計上的問題。
你可以把 Not a Number 理解為特殊的數字,就像無窮大無窮小也是特殊的數字一樣, Not a Number 的字面意思則可以理解為它是一個不可以表達出來的數字。
三、Null
在 JavaScript 中 null 表示 "什麼都沒有"。
null是一個只有一個值的特殊型別。表示一個空物件引用。
從邏輯角度來看,null值表示一個空物件指標,而這也正是使用typeof操作符檢測null值會返回“object”的原因。
提示:用 typeof 檢測 null 返回是object。null 和 undefined 的值相等,但型別不等
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
四、如何判斷這三者
Undefined 使用 typeof
let some;
if (typeof some == "undefined") {
alert("this is undefined");
}
NaN 使用 isNaN()
let some=0/0;
if (isNaN(some)) {
alert("this is NaN");
}
Null 的判斷
let exp=null;
if(exp===null){
alert("is null");
}