2017-04-18 99 views
-2

當我嘗試解析像這樣的一些字符串類型數值:爲什麼parseInt函數刪除下劃線

a = parseInt("5") 

然後a等於5

如果我嘗試解析字符串,像這樣:

a = parseInt("A") 

那麼我的回答是NaN

但是,當我嘗試解析此:

a = parseInt("1492515425322_1") 

然後a等於1492515425322

爲什麼不是NaN

+1

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt – Rayon

+3

「如果parseInt遇到不是指定基數中的數字的字符,它會忽略它並忽略所有後續字符並返回解析到該點的整數值。「 – Thilo

+0

讓我們來談談javascript .... https://www.destroyallsoftware.com/talks/wat – 2017-04-18 12:02:37

回答

1

因爲它基本上會嘗試解析字符串,並且會返回_之前的所有數字。如果你想知道整個字符串是否是一個數字,你可以使用Number("1492515425322_1"),它會返回NaN。

2

根據MDN

如果parseInt函數遇到字符不指定基數的數字,它忽略它和所有後續字符,並返回解析到該點的整數值。 parseInt將數字截斷爲整數值。前後空格是允許的。

因此parseInt()將解析字符串,直到它遇到任何不是數字的東西,並忽略其餘部分。隨着"A"第一個字符是非數字的,所以根本沒有任何東西可以被解析。

相關問題