[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