Pourquoi mentionne "objet" deux fois?

[Object Object] est la représentation de chaîne par défaut d'un objet JavaScript.

Je comprendrais si c'était [Object] ou [object] , mais pourquoi [object Object] ? Pourquoi le premier mot est en minuscule et le second est en majuscule? Cela fait-il partie de JSON ou JavaScript?

Tous les objets ont une méthode toString qui affiche quelque chose dans le format [object type] , où type est le type d'objet.

Lorsque vous null vous obtenez [object Null] et, lorsqu'il est appelé sur un objet, vous obtenez la chaîne [object Object] car elle est basée sur le constructeur Object (capital "O"), c'est pourquoi il dit l' object deux fois, c'est un objet du Tapez Object.

MDN

JSON est un format d'échange de données léger et n'a vraiment rien à voir avec JavaScript autre que d'être nommé "Notation d'objet JavaScript" car il est écrit comme un objet JavaScript.

Je comprendrais si c'était [Object] ou [object], mais pourquoi [objet Object]?

Parce qu'il s'agit d' un objet créé à partir de la classe d' Object base.

À partir de la spécification :

Renvoie la valeur de la chaîne qui résulte de la concaténation des trois chaînes "[objet", classe et "]".


Cela fait-il partie de JSON ou JavaScript?

Il n'a absolument rien à voir avec JSON.

Le premier object indique que le type de chose en cours d'enregistrement est un objet. Il est également codé dans les spécifications linguistiques ici .

Le deuxième Object désigne la propriété constructeur, par exemple:

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

L'algorithme dit simplement: "Obtenir la propriété [[classe]] de l'objet, puis retourner '[object' + class + ']' '.

Vous avez fondamentalement frappé le mur platonique de la grotte. Si tout est un objet, quel est le sur-ensemble de l'objet? Ici, la réponse est incorporée dans le code, c'est simplement un objet.

Par conséquent, tous les objets sont des objets.

Bienvenue dans la circularité.