JavaScript ES6中 Number.isFinite() 和 Number.isNaN()
巴扎黑
巴扎黑 2017-05-18 10:52:30
0
2
552

最近在學習ES6,關於數值擴充這有點疑問。

ES6在Number物件上提供兩個方法:Number.isFinite()Number.isNaN()

與ES5不同在於取消了先呼叫一次Number()將非數值轉換為數值後再判斷。

注意:兩個方法與傳統的 isFinite() 和 isNaN() 方法區別在於,傳統方法先呼叫 Number() 將非數值的值轉為數值,再判斷。這兩個方法只對數值有效,非數值一律回傳 false。

不太理解為什麼要這麼做,我覺得先呼叫一次Number()將非數值轉換成數值後再判斷不是應該更好嗎?

巴扎黑
巴扎黑

全部回覆(2)
phpcn_u1582

可以看看MDN的描述

而isFinite的你可以比較下Number.isFinite(true)和isFinite(true)就知道了。當然,Number.isFinite("")和isFinite("")也可以。

黄舟

這兩個功能是Number上判斷一個數值是否為有限的,或者是否為NaN,前提是數字,如果將string等內部暗操作轉化成數字,就失去其本身所要直接表達的含義,還有帶來一些其它問題,就變成不只可以判斷數字,也可以判斷string等類型。
參考連結:

es6
isNaN

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板