[JS] NaN (Not a Number)
NaN(Not a Number) 顧名思義就是非數字
NaN的型別是 Number:typeof NaN // NumberNaN不等於任何值,也不等於自己NaN === NaN // false
typeof NaN; // number
NaN === NaN; // false
NaN 的場景
在這些情況下會出現 NaN:
- 運算元無法被轉為 Number
- 0 除以 0
- 負數的平方根
- 對
Infinity做「除法」或「減法」運算:因為Infinity本身為大到無法表示的值,因此針對Infinity做加減乘除是沒有意義的Infinity + Infinity=> 回傳 InfinityInfinity - Infinity=> 回傳 NaNInfinity * Infinity=> 回傳 InfinityInfinity / Infinity=> 回傳 NaN
- 運算元為
NaN
// 運算元無法被轉為 Number
Number('hello'); // NaN
Number(undefined); // NaN
5 + undefined; // NaN
// 0 除以 0
0 / 0; // NaN
// 負數的平方根
Math.sqrt(-3); // NaN
// 對 Infinity 做除法或減法運算
Infinity / Infinity; // NaN
Infinity - Infinity; // NaN
// 運算元為 NaN
NaN + 1; // NaN
NaN - 2; // NaN
NaN * 3; // NaN
NaN / 4; // NaN