Javascript中的parseInt()如何工作?

时间:2018-05-26 15:29:15

标签: javascript



    console.log(parseInt('01abbb')) // 1
    console.log(parseInt('31xyz'))  // 31
    console.log(parseInt('zyz31'))  // NaN
    console.log(parseInt('31xyz1')) // 31




parseInt()是否忽略了字符恰好不是整数的索引的后缀?

4 个答案:

答案 0 :(得分:2)

只有在从字符串转换为数字时才能获得有意义的数字。

console.log(parseInt('01abbb')) // 1 -> it is started by 01 before chars
console.log(parseInt('31xyz'))  // 31 -> it is started by 31 before chars
console.log(parseInt('zyz31'))  // NaN -> it is not started by numbers
console.log(parseInt('31xyz1')) // 31 -> it is started by 31 before chars

答案 1 :(得分:1)

ParseInt读取,直到它停止看到一个数字。由于xyz不是数字,因此返回NaN(非数字)。

答案 2 :(得分:1)

来自Microsoft's docs:

  

如果没有numString的前缀可以成功解析为整数,则返回NaN(不是数字)。

所以是的,只返回可解析的前缀。

答案 3 :(得分:1)

有关详细信息,请参阅the usual rules for determining the this seen by a function

  

注意:只返回字符串中的第一个数字!

     

注意:允许前导和尾随空格。

     

注意:如果第一个字符无法转换为数字,parseInt()将返回NaN。

     

注意:较旧的浏览器会导致parseInt(" 010")为8,因为较旧版本的ECMAScript(早于ECMAScript 5,在字符串以&开头时使用八进制基数(8)作为默认值) #34; 0"。从ECMAScript 5开始,默认为十进制基数(10)。