为什么提到“对象”两次?

[object Object]是JavaScript对象的默认string表示forms。

我会明白,如果它只是[Object][object] ,但为什么[object Object] ? 为什么第一个字是小写字母,第二个字母是大写字母? 它是JSON还是JavaScript的一部分?

所有对象都有一个toString方法,以[object type]格式显示某些东西,其中type是对象types。

当你调用null你得到[object Null] ,当你在一个对象上调用的时候,你会得到string[object Object]因为它是基于Object构造函数 (大写“O”),这就是为什么它说object两次,它是键入对象。

MDN

JSON是一种轻量级的数据交换格式,除了被命名为“JavaScript对象表示法”之外 ,其实并没有什么关系,因为它被写成JavaScript对象。

我会明白,如果它只是[对象]或[对象],但为什么[对象对象]?

因为它是从基本Object类创build的Object

从规格 :

返回连接三个string“[object”,class和“]”的string值。


它是JSON还是JavaScript的一部分?

这与JSON完全没有关系。

第一个object表示被logging的东西的types是一个对象。 在这里的语言规范中也是硬编码的。

第二个Object表示构造函数属性,例如:

 Object.prototype.toString.call(""); // [object String] 

algorithm只是说:“获取对象的[[class]]属性,然后返回'[object'+ class +']'。

你已经基本打到了柏拉图式的洞穴壁上。 如果一切都是对象,对象的超集是什么? 这里,答案体现在代码中,它只是对象。

因此所有对象都是对象。

欢迎来到循环。