2025年12月1日 星期一

初探 NaN

 初探 NaN

前言

  NaN 是 JavaScript 特有的常數,以前都沒好好了解,只知道是個常數,這次就來認識 NaN ,在此把學習的過程做個紀錄。


內容

  NaN 是個常數,全名是 Not A Number ,直翻就是"不是個數字",可以用 isNaN() 來檢測,範例如下

console.log( isNaN( 123 ) );//false
console.log( isNaN( "123" ) );//false
console.log( isNaN( "abc" ) );//true
console.log( isNaN( Infinity ) );//false
console.log( isNaN( -Infinity ) );//false
console.log( isNaN( NaN ) );//true
console.log( isNaN( {} ) );//true
console.log( isNaN( [] ) );//false


範例先使用數字(123)來測試,結果如期望是 false ,接著測試字串,這裡分別測試字串內容是數字與字串內容不是數字的狀況,結果當內容是數字結果為 false ,反之則是 true ,字串的檢測會依據內容作改變。那 Infinity 呢?不論是 Infinity 與 -Infinity 的結果都是 false ,Infinity 在 JavaScript 歸類為數字。接著直接拿 NaN 檢測如預期為 true。最後做了有趣的測試,如果拿 Object 與 Array 來檢測結果如何呢? Object 如預期是 true ,但意外的是 Array ,結果是 false,雖然正常不會這樣使用,但這結果倒是滿讓人意外的。


參考資料

[ developer.mozilla.org ] NaN