我有一个类似的声明
var x = parseInt(1)+'b';
为什么这个结果是1b但是isNAN('b')
返回真实; 结果应该是NaN?
Number + String
不是算术运算.
在Number + String
语句中,引擎会将数字转换为字符串等价物.
在你的情况下它将是1 -> '1'
.然后将是简单的字符串连接,因为+
运算符将连接两个字符串.
'1' + 'b' === '1b';
代码片段
console.log(1 + 'b');
因为它不是算术运算,所以它是字符串连接.无论何时无论操作数+
是一个字符串,字符串连接是做,而不是加法; 规范中的详细信息.如果另一个操作数不是字符串,则它被赋予字符串.所以你最终得到"1" + "b"
=> "1b"
.