No Chrome, o consoleobjeto define dois métodos que parecem fazer a mesma coisa:
console.log(...)
console.dir(...)
Li em algum lugar on-line que dirtira uma cópia do objeto antes de registrá-lo, enquanto logapenas passa a referência ao console, o que significa que quando você inspeciona o objeto que registrou, ele pode ter sido alterado. No entanto, alguns testes preliminares sugerem que não há diferença e que eles sofrem com a exibição potencial de objetos em estados diferentes do que quando foram registrados.
Tente isso no console do Chrome ( Ctrl+ Shift+ J) para ver o que quero dizer:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Agora, expanda a [Object]instrução abaixo do log e observe que ela é exibida foocom o valor 2. O mesmo acontece se você repetir a experiência usando em dirvez de log.
Minha pergunta é: por que essas duas funções aparentemente idênticas existem console?
console.dirnão muda, por isso faz uma grande diferença.


console.log([1,2])econsole.dir([1,2])você verá a diferença.