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