为什么parseInt函数( '1岁'),返回1,但parseInt函数( '我是1岁')将返回NaN?
问题描述:
在开发人员控制台中运行的代码如下所示。为什么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