<script>
var num = new Number(43);
console.log(num);
</script>
根据这里的教程:http://www.w3schools.com/jsref/jsref_obj_number.asp
Syntax
var num = new Number(value);
Note: If the value parameter cannot be converted into a number, it returns NaN (Not-a-Number).
问题:
在firebug-&gt;控制台中,它显示:Number {}
,而不是我期望的Number {43}
,无论我放入new Number(value)
的数字是多少;它始终显示:Number {}
那么使用new Number(value)
的目的是什么?它是如何工作的?顺便说一下,我在谷歌上搜索,但没有找到一个很好的解释。
答案 0 :(得分:1)
Number(43)
是一个数字原语,但new Number(43)
将从该数字原语创建一个对象。显示Number {}
就是Chrome控制台如何显示这样的对象。
new Number(43)
仍会像数字一样“行为”。在控制台中:
var num = new Number(43); // Number {}
num == 43 // true
num + 5 // 48
num === 43 // false, since the types don't match.
有关new
工作原理的详细信息:How does the new operator work in JavaScript?。如果您只想要一个数字原语,请不要使用new
。
答案 1 :(得分:0)
数字基元和数字对象之间存在差异。当您使用new
关键字时,您将创建一个新的数字对象,这是您所看到的。您可以使用valueOf
获取数字对象的值,该值返回基元:
> var n = new Number(42);
> n.valueOf()
42