У Chrome consoleоб’єкт визначає два методи, які, здається, роблять те саме:
console.log(...)
console.dir(...)
Я читав десь в Інтернеті, що dirбере копію об’єкта перед тим, як ввійти до нього, тоді як logпросто передає посилання на консоль, це означає, що до моменту переходу до огляду об’єкта, який ви зареєстрували, він, можливо, змінився. Однак деякі попередні тестування свідчать, що різниці немає і що вони обидва страждають від потенційно показаних об'єктів у різних станах, ніж коли вони були зареєстровані.
Спробуйте це на консолі Chrome ( Ctrl+ Shift+ J), щоб побачити, що я маю на увазі:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Тепер розгорніть [Object]під оператором журнал і помітьте, що він відображається fooзі значенням 2. Те ж саме, якщо повторити експеримент, використовуючи dirзамість log.
Моє питання: чому існують ці дві, здавалося б, однакові функції console?
console.dir, не змінюється, тому це робить велику різницю.
console.dir(): ця функція нестандартна ! Тому не використовуйте його на виробництві;)


console.log([1,2])іconsole.dir([1,2])ви побачите різницю.