奇妙的東西~
簡述
這邊先強調一下:
NaN不是一種資料型態NaN不是一種資料型態NaN不是一種資料型態
NaN 其實是一個 number:
1 | console.log(typeof NaN); // number |
只不過它有一個很奇葩的現象:
1 | const a = Number('abc') // NaN |
居然有變數不等於變數自己的情況?沒錯,這就是 NaN 的特性,它不等於任何人,即便是它自己。
所以就特別記一下就好,NaN 就是個特殊的 case。如果你真的要檢查一個變數是不是 NaN 可以用 isNaN 來檢查:
1 | console.log(isNaN(NaN)); // true |
'123' 這個 case 你能想成是這樣:
1 | console.log(isNaN(Number('123'))); |
這樣就不會覺得困惑了。