为什么parseInt会删除下划线

时间:2017-04-18 11:59:51

标签: javascript

当我尝试解析一些字符串类型的数值时,如下所示:

a = parseInt("5") 

然后a等于5

如果我尝试解析这样的字符串:

a = parseInt("A") 

然后我的答案是NaN

但是,当我尝试解析它时:

a = parseInt("1492515425322_1")

然后a等于1492515425322

为什么不是NaN

3 个答案:

答案 0 :(得分:2)

根据MDN

  

如果parseInt遇到的字符不是指定基数中的数字,它会忽略它和所有后续字符,并返回解析到该点的整数值。 parseInt将数字截断为整数值。允许前导和尾随空格。

所以parseInt()将解析字符串,直到它遇到任何不是数字的字符串,并忽略其余部分。使用"A"时,第一个字符是非数字的,因此根本无法解析任何内容。

答案 1 :(得分:1)

它记录在案的行为: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt

  

parseInt函数将其第一个参数转换为字符串,即parses   它,并返回一个整数或NaN。如果不是NaN,则返回值   是一个整数,它是作为数字的第一个参数   指定的基数(基数)。

答案 2 :(得分:1)

因为它基本上会尝试解析字符串,并会在_之前返回所有数字。如果你想知道整个字符串是否是一个数字,你可以使用Number("1492515425322_1"),它将返回NaN。