var a = Number(1); // 1
var b = new Number(1); // Number {[[PrimitiveValue]]: 1}
typeof a; // number
typeof b; // object
a == b; // true
- var a = 1 是一个常量,而 Number(1) 是一个函数
- new Number(1)是返回一个对象
- a==b 为 true 是因为所以在求值过程中,总是会强制转为原始数据类型非对象,例如下面的代码:
typeof 123; // "number"
typeof new Number(123); // "object"
123 instanceof
Number(
// false
new Number(123)
) instanceof
Number; // true
123 === new Number(123); // false