W Chrome consoleobiekt definiuje dwie metody, które wydają się robić to samo:
console.log(...)
console.dir(...)
Przeczytałem gdzieś w Internecie, że dirpobiera kopię obiektu przed jego zalogowaniem, podczas gdy logpo prostu przekazuje odwołanie do konsoli, co oznacza, że zanim przejdziesz do sprawdzenia zalogowanego obiektu, mogło się to zmienić. Jednak niektóre wstępne testy sugerują, że nie ma różnicy i że oboje cierpią z powodu potencjalnie pokazywania obiektów w różnych stanach niż w momencie ich zalogowania.
Wypróbuj to w konsoli Chrome ( Ctrl+ Shift+ J), aby zobaczyć, co mam na myśli:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Teraz rozwiń [Object]poniżej instrukcji dziennika i zauważ, że pokazuje fooona wartość 2. To samo dotyczy powtórzenia eksperymentu za pomocą dirzamiast log.
Moje pytanie brzmi: dlaczego te dwie pozornie identyczne funkcje istnieją console?
console.dirnie zmienia się, więc robi to dużą różnicę.
console.dir(): ta funkcja jest niestandardowa ! Więc nie używaj go do produkcji;)


console.log([1,2])iconsole.dir([1,2])zobaczysz różnicę.