В Chrome consoleобъект определяет два метода, которые, кажется, делают одно и то же:
console.log(...)
console.dir(...)
Я где-то читал в Интернете, где dirперед записью берется копия объекта, тогда как я logпросто передаю ссылку на консоль, а это означает, что к тому времени, когда вы начнете проверять зарегистрированный объект, он может измениться. Однако некоторые предварительные испытания показывают, что нет никакой разницы и что они оба страдают от потенциального отображения объектов в разных состояниях, чем когда они были зарегистрированы.
Попробуйте это в консоли Chrome ( Ctrl+ Shift+ J), чтобы понять, что я имею в виду:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Теперь разверните [Object]ниже оператора log и обратите внимание, что он показывает fooсо значением 2. То же самое верно, если вы повторите эксперимент, используя dirвместо log.
Мой вопрос: почему существуют эти две, казалось бы, идентичные функции console?
console.dirне изменяется, поэтому оно имеет большое значение.
console.dir(): эта функция нестандартна ! Так что не используйте его на производстве;)


console.log([1,2])иconsole.dir([1,2])вы увидите разницу.