嗯,它们在语义上是不同的,
Number称为函数的构造函数执行类型转换并
parseInt执行 解析 ,例如:
// parsing:parseInt("20px"); // 20parseInt("10100", 2); // 20parseInt("2e1"); // 2// type conversionNumber("20px"); // NaNNumber("2e1"); // 20, exponential notation请记住,如果
parseInt在字符串上检测到前导零,它将以八进制为基础来解析数字,这在标准的新版本ECMAscript
5中已更改,但是要花很长时间才能进入浏览器实现((与ECMAscript3不兼容),也
parseInt将忽略与当前使用的基数的任何数字都不对应的结尾字符。
该
Number构造函数不检测八进制:
Number("010"); // 10parseInt("010"); // 8, implicit octalparseInt("010", 10); // 10, decimal radix used但是它可以用十六进制表示法处理数字,就像
parseInt:
Number("0xF"); // 15parseInt("0xF"); //15另外,用于执行数值类型转换的一种广泛使用的构造是一元
+运算符(p。72),它等效于将
Number构造函数用作函数:
+"2e1"; // 20+"0xF"; // 15+"010"; // 10



