En Chrome, el consoleobjeto define dos métodos que parecen hacer lo mismo:
console.log(...)
console.dir(...)
Leí en algún lugar en línea que dirtoma una copia del objeto antes de registrarlo, mientras que logsolo pasa la referencia a la consola, lo que significa que para cuando inspeccione el objeto que registró, puede haber cambiado. Sin embargo, algunas pruebas preliminares sugieren que no hay diferencia y que ambos sufren la posibilidad de mostrar objetos en diferentes estados que cuando se registraron.
Prueba esto en la consola de Chrome ( Ctrl+ Shift+ J) para ver a qué me refiero:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Ahora, expanda [Object]debajo de la declaración de registro y observe que se muestra foocon un valor de 2. Lo mismo es cierto si repite el experimento usando en dirlugar de log.
Mi pregunta es, ¿por qué existen estas dos funciones aparentemente idénticas console?
console.dirno cambia, por lo que hace una gran diferencia.


console.log([1,2])yconsole.dir([1,2])verás la diferencia.