为什么parseInt()在javascript转换" 1abc"到1?

时间:2018-04-06 15:42:34

标签: javascript parseint

我试图了解parseInt()将如何在javascript中运行,我的方案是

var x = parseInt("123"); console.log(x); // outputs 123

var x = parseInt("1abc"); console.log(x); // outputs 1

var x = parseInt("abc"); console.log(x); // outputs NaN

从我的观察开始,当字符串以数字开头时,parseInt()将字符串转换为整数(实际上不是字符串的整数,如" 12sv")。

但实际上它应该返回NaN。

3 个答案:

答案 0 :(得分:3)

来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

"如果第一个字符无法转换为数字,则parseInt返回NaN。"

答案 1 :(得分:1)

来自Mozilla's docs:"如果parseInt遇到的字符不是指定基数中的数字,它会忽略它和所有后续字符并返回解析到该点的整数值。&#34 ;

因此它将解析第一个无效字符,删除字符串的其余部分,并返回它设置为解析的int,直到那时。如果没有有效字符,则返回NaN。

答案 2 :(得分:0)

parseInt() - >它只是将提供的值解析为等效的基数转换,如果指定没有基数,则转换为十进制等值。

出于强制目的,我们应该避免使用parseInt,我们可以使用Number()函数。