2014-06-24 33 views
0
typeof 2; //number 
    typeof "2"; //string 
    parseInt("2");//2 
    typeof Infinity; //number 
    parseInt(Infinity);//NaN 
    typeof NaN; //number 
    parseInt(NaN);//NaN 

是否有其他Number其parseInt值爲NaN的元素?如果是的話,單/形容他們請JavaScript中有parseInt值= NaN的數字

更新:什麼無厘頭的JavaScript是isNaN(NaN)回報truetypeof NaN回報number對字符串

+1

[讓我們來談談Javascript](https://www.destroyallsoftware.com/talks/wat) –

+1

總是有助於閱讀[** documentation **](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/parseInt):*「要解析的值,如果字符串不是字符串,則將其轉換爲1,忽略字符串中的空白字符」* –

回答

3

parseInt作品,所以無論你給它,它會轉換爲一個字符串。

Infinity => "Infinity" => NaN

但既然你問...

parseInt(-Infinity); // NaN 
+0

真的不是真的'alert(parseInt(UnknownVariable));''將永遠不會工作或轉換成'alert(parseInt('UnknownVariable'));' – Bellash

+0

@Bellash:這是因爲代碼拋出一個引用錯誤。變量沒有可以傳遞給函數的值,因爲它不存在。然而,'Infinity'是一個全局變量(http://es5.github.io/#x15.1),*值*'Infinity'。你正在比較蘋果和橘子。傳遞給'parseInt'的每個值都被轉換爲一個字符串。 –

+0

啊好的謝謝 – Bellash

0

Infinity是一個號碼,嘗試

isNaN(Infinity); // gives 'false' so it is a Number 

parseInt第一個參數是一個字符串,Infinity已經是數...所以你不能解析它。

+2

FWIW,'NaN'也是一個數字,儘管它的名字。 'typeof NaN' –

+0

但是'isNaN(NaN)'是正確的。好的,這是正確的 – algorhythm

+0

而'Infinity -Infinity'給出'NaN' – algorhythm

相關問題