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