在開發人員控制檯中運行的代碼如下所示。爲什麼parseInt
返回字符串的[0]索引中存在的數字,但不返回字符串中任何其他索引中存在的數字?爲什麼parseInt函數( '1歲'),返回1,但parseInt函數( '我是1歲')將返回NaN?
parseInt('i am 1 year old')
// output NaN
parseInt('1 year old')
// output 1
的原因是什麼,爲什麼它的行爲這樣的嗎?
在開發人員控制檯中運行的代碼如下所示。爲什麼parseInt
返回字符串的[0]索引中存在的數字,但不返回字符串中任何其他索引中存在的數字?爲什麼parseInt函數( '1歲'),返回1,但parseInt函數( '我是1歲')將返回NaN?
parseInt('i am 1 year old')
// output NaN
parseInt('1 year old')
// output 1
的原因是什麼,爲什麼它的行爲這樣的嗎?
的parseInt
函數讀取字符串,它不斷獲得數點。所以,10 is a number
返回10
,因爲函數停在第三個字符,這是一個空格。但在i am 1 year old
情況下,它停在i
,因爲它不是一個數字,並返回NaN
代替。
如果parseInt函數遇到一個字符不在 指定基數的數字,它忽略它和所有後續字符和 返回解析到該點的整數值。 parseInt將 數字截斷爲整數值。前後空格是允許的。
參考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt
的可能的複製[?爲什麼使用Javascript parseInt函數( '0x4A')返回相同的parseInt函數( '0x4Avv')](https://stackoverflow.com/questions/29781856/爲什麼此結果JavaScript的parseint0x4a回報最相同的-parseint0x4avv) – Thilo
它正試圖解析字符串。它看到第一個字符是一個數字,之後的所有內容都不是,所以它只看到1.當它試圖轉換我時,它看到* i *不是數字。 '和'parseInt函數('16蠟燭);你可以用parseInt函數的'各種輸入測試(「5trees」)看到它' – Fallenreaper
因爲這是它是如何定義的工作,作爲[文件]中明確指出(HTTPS: //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt)。 – 2017-09-02 04:36:15