Nic*_*ole 9 javascript language-features language-design
在Javascript中,将字符串转换为数字的可靠方法之一是Number构造函数:
var x = Number('09'); // 9, because it defaults to decimal
受这个问题的启发,我开始疑惑 - 上面和之间的区别是什么:
var x =new Number('09');
Number当然看起来更好,但似乎对构造函数的使用略显不合适.没有新的使用它是否有任何副作用或任何差异?如果没有区别,为什么不,新的目的是什么?
CMS*_*CMS 13
在第一种情况下,您正在使用被称为函数的数字构造函数,如规范中所述,它将简单地执行类型转换,返回Number基元.
在第二种情况下,您使用Number构造函数来创建Number对象:
var x = Number('09');
typeof x; // 'number'
var x = new Number('09');
typeof x; // 'object'
Number('1') === new Number('1'); // false
差异可能很微妙,但我认为重要的是要注意包装器对象如何作用于原始值.