來講說isNaN()和isFinite()

簡單的說isNaN()是判斷一個值是否是不能被轉成數字
isFinite()是和isNaN()相反的,判斷一個一個值是否是能轉成數字javascript

首先,Number類型確定是能轉的,Number(1) //1
而後,數字的字符串也能轉的,Number('1') //1
而後,各類可能和0等價的東西,null,"" ,false,(true == 1).......
反正就是按照這個思路,下面的代碼你就能得出正確的答案java

javascriptconsole.log(isNaN(NaN));    //NaN就是Not-A-Number
console.log(isNaN(undefined));//undefined什麼都不是,固然也Not-A-Number.
console.log(isNaN(null));// 能轉成0
console.log(isNaN(""));  // 能轉成0
console.log(isNaN({}));  // 至關於undefined
console.log(isNaN([]));  // 能轉成0
console.log(isNaN(new Object()));  //NaN
console.log(isNaN(new String()));  //能轉成0
console.log(isNaN(new String("a"))); //轉成字符串
console.log(isNaN(new Array()));  //能轉成0
console.log(isNaN(new Date()));  //能轉成數字
console.log(isNaN(new Date().toString()));  //轉成字符串
console.log(isNaN(true));//能轉成1
console.log(isNaN(0/0)); //結果就是NaN

而後說isFinite(),前面說了,和isNaN()是相反的,
要說不一樣的地方,isFinite()是ECMAScript2定義的,isNaN是ECMAScript1的時候就定義了,不知道某E的老版本會不會有特殊狀況出現
代碼就不貼了,逃code

相關文章
相關標籤/搜索