1
<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->console 中,它显示:Number {},不是我期望Number {43}的,无论我输入什么数字new Number(value);它总是显示:Number {}那么使用的目的是什么new Number(value)?它是如何工作的?顺便说一句,我在网上搜索了一下,但没有找到一个很好的解释。

4

2 回答 2

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工作的更多信息:new 运算符如何在 JavaScript 中工作?. 如果您只想要一个数字原语,请不要使用new.

于 2013-06-17T03:15:59.923 回答
0

数字原语和数字对象之间存在差异。当您使用new关键字时,您会创建一个新的数字对象,这就是您所看到的。您可以使用 获取数字对象的值valueOf,它返回原语:

> var n = new Number(42);
> n.valueOf()
42
于 2013-06-17T03:11:56.250 回答