在下面的代码中:-
var x = { } ;
console.log(typeof x); // o/p is object
console.log(x instanceof Object ); //o/p is true
如果我在最后一行使用“ object ”而不是“ Object ”,我会得到一个错误。为什么当第二行的 o/p 是带有小写“o”的对象时会这样?
在下面的代码中:-
var x = { } ;
console.log(typeof x); // o/p is object
console.log(x instanceof Object ); //o/p is true
如果我在最后一行使用“ object ”而不是“ Object ”,我会得到一个错误。为什么当第二行的 o/p 是带有小写“o”的对象时会这样?
因为没有“对象”这样的东西。Typeof 不会将类返回给您 - 它会返回原始类型。例如,typeof "string"
给你回“字符串”。
'Object' 是对象'primitive' 的构造函数 - 所以 anew Object
给你一个'object'来使用..但不要期望能够创建一个'new object',因为'object'没有'不作为构造函数存在。
你得到一个错误,因为你没有定义一个名为object
. 尝试读取尚未声明的变量是ReferenceError。
该Object
变量是环境的原生变量,并且预定义为普通对象的构造函数。这就是为什么当你这样做时它起作用的原因instanceof Object
。JavaScript 中的每个原生对象都是Object
.
Javascript 是区分大小写的“对象”本质上是一个可以容纳任何东西的变量。“对象”是一个实际的 javascript 类型。