isNaN()和Number.isNaN()

1.isNaN() 會進行Number隱式轉(zhuǎn)換

    isNaN(NaN);       // true
    isNaN(undefined); // true
    isNaN({});        // true

    isNaN(true);      // false
    isNaN(null);      // false
    isNaN(37);        // false

    // strings
    isNaN("37");      // false: 可以被轉(zhuǎn)換成數(shù)值37
    isNaN("37.37");   // false: 可以被轉(zhuǎn)換成數(shù)值37.37
    isNaN("");        // false: 空字符串被轉(zhuǎn)換成0
    isNaN(" ");       // false: 包含空格的字符串被轉(zhuǎn)換成0

    // dates
    isNaN(new Date());                // false
    isNaN(new Date().toString());     // true

    isNaN("blabla")   // true: "blabla"不能轉(zhuǎn)換成數(shù)值  

2.Number.isNaN() 只會對數(shù)字型的值進行判斷是否為NaN

    Number.isNaN(NaN);        // true
    Number.isNaN(Number.NaN); // true
    Number.isNaN(0 / 0)       // true

    // e.g. these would have been true with global isNaN()
    Number.isNaN("NaN");      // false
    Number.isNaN(undefined);  // false
    Number.isNaN({});         // false
    Number.isNaN("blabla");   // false

    // These all return false
    Number.isNaN(true);
    Number.isNaN(null);
    Number.isNaN(37);
    Number.isNaN("37");
    Number.isNaN("37.37");
    Number.isNaN("");
    Number.isNaN(" ");  

3.兩者關(guān)聯(lián)

    isNaN = function(value) {
        Number.isNaN(Number(value));
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容