好吧,这是我知道的一些区别:
空字符串的""
计算结果为a 0
,而其parseInt
计算结果为NaN
。IMO,空白字符串应为NaN
。
+'' === 0; //true
isNaN(parseInt(‘’,10)); //true
一元的+
行为更像是parseFloat
因为它也接受小数。
parseInt
另一方面,当看到非数字字符(例如要用作小数点的句点)时,它将停止解析.
。
+'2.3' === 2.3; //true
parseInt('2.3',10) === 2; //true
+
另一方面,NaN
如果整个字符串不可转换为数字,则一元将返回。
parseInt('2a',10) === 2; //true
parseFloat('2a') === 2; //true
isNan(+'2a'); //true
一元+
将正确地转换它们。
parseInt('2e3',10) === 2; //true. This is supposed to be 2000
+'2e3' === 2000; //true. This one's correct.
parseInt("0xf", 10) === 0; //true. This is supposed to be 15
+'0xf' === 15; //true. This one's correct.