当我尝试解析一些字符串类型的数值时,如下所示:
a = parseInt("5")
然后a
等于5
。
如果我尝试解析这样的字符串:
a = parseInt("A")
然后我的答案是NaN
。
但是,当我尝试解析它时:
a = parseInt("1492515425322_1")
然后a
等于1492515425322
。
为什么不是NaN
?
答案 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。