在这种情况下,parseInt 返回12
:
"12.5 Im the king of the world"
是否有 JavaScript 的原生函数来检查字符串并在字符串不真正表示整数时返回 NaN?
您可以使用+
一元运算符,该运算符执行与 Number 构造函数相同的操作,然后显式检查结果是否为整数:
var str = "12.5 whatever";
var int = +str;
if (isNaN(int) || Math.floor(int) !== int)
// not an integer
else
// an integer
这将允许您确定原始字符串中是否有垃圾,但也检查字符串是否表示整数而不是带有小数部分的数字。
我认为 + 运算符是您要查找的:
let foo = "12.5 Im the king of the world";
let bar = parseInt(foo);
let baz = +foo;
console.log(bar, typeof bar);
console.log(baz, typeof baz);
这将返回:
12 'number'
NaN 'number'