[object Object] is the default string representation of a JavaScript Object.
I would understand if it was just [Object] or [object], but why [object Object]? Why the first word is lowercase and the second one is uppercase? Is it part of JSON or JavaScript?
All objects have a toString method that displays something in the format [object type], where type is the object type.
When called on null you get [object Null] and when called on an object you get the string [object Object] because it's based on the Object constructor (capital "O"), that's why it says object twice, it's an object of the type Object.
MDN
JSON is a lightweight data-interchange format, and doesn't really have anything to do with JavaScript other than being named "JavaScript Object Notation" because it's written like a JavaScript object.
I would understand if it was just [Object] or [object], but why [object Object]?
Because it is an object created from the basic Object class.
From the spec:
Return the String value that is the result of concatenating the three Strings "[object ", class, and "]".
Is it part of JSON or JavaScript?
It has absolutely nothing to do with JSON.
The first object denotes that the type of the thing being logged is an object. It's also hard-coded in the language specification here.
The second Object denotes the constructor property, for example:
Object.prototype.toString.call(""); // [object String]
The algorithm just says: "Get the [[class]] property of the object and then return '[object ' + class + ']'.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With