[object Object] es la representación de cadena predeterminada de un objeto de JavaScript.
Lo entendería si fuera solo [Object] u [object] , pero ¿por qué [object Object] ? ¿Por qué la primera palabra está en minúsculas y la segunda en mayúsculas? ¿Es parte de JSON o JavaScript?
Todos los objetos tienen un método toString que muestra algo en el formato [object type] , donde tipo es el tipo de objeto.
Cuando se llama a null , obtienes [object Null] y cuando se llama a un objeto, obtienes la cadena [object Object] porque está basado en el constructor Objeto ("O" mayúscula), es por eso que dice object dos veces, es un objeto del tipo Objeto.
JSON es un formato ligero de intercambio de datos y realmente no tiene nada que ver con JavaScript aparte de ser llamado "Notación de objetos de JavaScript" porque está escrito como un objeto de JavaScript.
Lo entendería si fuera solo [Objeto] u [objeto], pero ¿por qué [objeto Objeto]?
Porque es un objeto creado a partir de la clase Object básica.
De la especificación :
Devuelve el valor de cadena que es el resultado de concatenar las tres cadenas "[objeto", clase y "]".
¿Es parte de JSON o JavaScript?
No tiene absolutamente nada que ver con JSON.
El primer object indica que el tipo de cosa que se registra es un objeto. También está codificado en la especificación de idioma aquí .
El segundo Object denota la propiedad del constructor, por ejemplo:
Object.prototype.toString.call(""); // [object String]El algoritmo simplemente dice: "Obtenga la propiedad [[clase]] del objeto y luego devuelva '[objeto' + clase + ']'.