在
JavaScript中,为什么:
new String * 1 <- 0
究竟是什么让它返回0,为什么以下等于NaN?
function Foo() { this.bar = 0; } new Foo * 5; <- NaN
解决方法
如果使用像*这样的算术运算符,JavaScript会尝试将类型转换为数字.空字符串变为0.
如果你有,例如:
new String("foo") * 1
您会注意到它返回NaN,因为无法完成到数字的转换.这就是你的第二种情况.