In JavaScript The definitive guide 7th edition, page 317, The Console API the author clearly says that console.log():
...converts its arguments to strings and outputs them to the console.
However, MDN says that:
A representation of each of these values is output to the console in the order given with some type of separation between each of them.
Further research has revealed that the display of the arguments in the console is implementation-dependent. I am inclined to disagree with the author(s) of The definitive guide in this situation, however I want to be sure that they are wrong on this particular occasion.
I have checked the Console API "specification" and it didn't say anything about the arguments being converted to strings.
console.log({foo: 'bar'}). For me, that's logged as an interactively expandable object. Not a string. Clearly not what the book says.console.dirto output object details. It's moved on since then. Looks like the book was published 2020, given a few years to get into production - so written/revised around 2018. IE11 was still the major browser, so could quite possibly have been correct at the time.