Dans Chrome, l' consoleobjet définit deux méthodes qui semblent faire la même chose:
console.log(...)
console.dir(...)
J'ai lu quelque part en ligne qui dirprend une copie de l'objet avant de l'enregistrer, alors que logje passe simplement la référence à la console, ce qui signifie qu'au moment où vous allez inspecter l'objet que vous avez enregistré, il peut avoir changé. Cependant, certains tests préliminaires suggèrent qu'il n'y a pas de différence et qu'ils souffrent tous les deux de la possibilité de montrer des objets dans des états différents de ceux lorsqu'ils étaient enregistrés.
Essayez ceci dans la console Chrome ( Ctrl+ Shift+ J) pour voir ce que je veux dire:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Maintenant, développez le [Object]sous l'instruction log et notez qu'elle s'affiche fooavec une valeur de 2. Il en va de même si vous répétez l'expérience en utilisant dirau lieu delog .
Ma question est, pourquoi ces deux fonctions apparemment identiques existent-elles console?
console.dirne change pas, donc cela fait une grande différence.
console.dir(): cette fonctionnalité n'est pas standard ! Alors ne l'utilisez pas en production;)


console.log([1,2])etconsole.dir([1,2])vous verrez la différence.