为什么使用Object(' 123')创建一个对象创建一个String()对象,但typeof是' object'?

时间:2015-03-15 14:04:53

标签: javascript

这样做:

var x = Object('abc');

现在只需在控制台中输入x,然后点击回车即可。它将输出:

String {0: "2", 1: "3", 2: "2", 3: "3",....}

现在输入typeof x,您将获得object

这里发生了什么?

2 个答案:

答案 0 :(得分:2)

Object构造函数返回一个对象的实例,该对象的类型适合传入的值。在你的情况下,你传入一个字符串原始值,所以你得到一个String对象。 (请注意,在JavaScript字符串原始值和字符串实例是两种不同的值。很难说,因为当情况需要时,JavaScript会自动将字符串原语包装在String包装器中。)

typeof运算符返回" object"对于String实例。

答案 1 :(得分:0)

var x = ""; 

是原始类型String。

var x = Object('abc'); 

是一个对象字符串。

检查“类型”部分以获取更多信息: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf