前几天我遇到了这个问题,无法弄清楚引擎盖下到底发生了什么.将String强制转换为Number类型的规则是什么?为什么它在'5.0.1'的例子中失败了?
var numStr = '5.0';
var floatStr = '5.0.1';
//Passes
if (numStr >= 4) {
alert('5 > 4');
}
//Fails
if (floatStr >= 4) {
alert('5.0.1 > 4');
}
console.log(parseInt(numStr)); //5
console.log(parseInt(floatStr)); //5
console.log(Number(numStr)); //5
console.log(Number(floatStr)); //NaN
Run Code Online (Sandbox Code Playgroud)