I'm running this in node.js:
> x = { 'foo' : 'bar' }
{ foo: 'bar' }
> console.log(x)
{ foo: 'bar' }
undefined
> console.log("hmm: " + x)
hmm: [object Object]
undefined
What I don't understand is why console.log(x)
"pretty-prints" the object, whereas string concatenation "ugly-prints" it. And more importantly, what's the best way to make it print hmm: { foo: 'bar' }
?
The + x
coerces the object x
into a string, which is just [object Object]
:
The pretty printing is a very nice and probably very complex underlying code that someone implemented as part of the console
object and the log
method.
Try this:
console.log("hmm: ", x);