Chaque fois console.log
est exécutée, une ligne disant undefined
est ajouté au journal de sortie.
Cela se produit à la fois dans Firefox et Chrome sous Windows et Linux.
Chaque fois console.log
est exécutée, une ligne disant undefined
est ajouté au journal de sortie.
Cela se produit à la fois dans Firefox et Chrome sous Windows et Linux.
Si vous êtes en train de courir console.log()
à partir d'un fichier JS, ceci undefined
ne doit pas être ajoutée.
Si vous êtes en train de courir console.log()
de la console elle-même, c'est logique. Voici pourquoi : Dans la console, vous pouvez taper le nom d'une variable (par exemple, essayez de taper window
) et il imprime des informations à son sujet. Lorsque vous exécutez une fonction void (comme console.log) à partir de la console, elle affiche également des informations sur la valeur de retour, undefined
dans ce cas.
J'ai testé les deux cas sur mon Chrome (Mac ver 23.0.1271.101) et en effet je vois la undefined
lorsque je l'exécute dans la console. Voici undefined
apparaît également lorsque j'écris cette ligne dans la console : var bla = "sdfdfs"
Bien que la réponse de Talkol soit correcte, j'essaie de la rendre plus directe :
JavaScript est conçu comme un langage dynamique, ce qui signifie que le type (string, void, boolean ) de la valeur de retour d'une fonction n'est pas prédéfini. Si une fonction n'utilise pas d'instruction de retour ou une instruction de retour vide sans valeur, JavaScript renvoie automatiquement une valeur indéfinie. Cela signifie qu'en JavaScript, chaque fonction renvoie quelque chose, au moins une valeur indéfinie.
Donc la fonction console.log()
dans la console Chrome n'utilise aucune déclaration de retour ou une déclaration de retour vide, de sorte que la valeur de retour de cette fonction est indéfinie. La valeur de retour de cette fonction est également affichée dans la console Chrome.
[Si quelqu'un sait où trouver la définition de la console.log()
dans le code source de Google Chrome, veuillez commenter avec le lien, alors nous pouvons même aller plus loin et regarder le vrai code, ce serait bien].
Sources :
L'environnement console de votre navigateur est conçu pour prendre la toute dernière expression d'un programme et l'évaluer pour obtenir une valeur, puis vous montrer cette valeur.
Le résultat d'une expression d'affectation est la valeur qui a été affectée. Ainsi, le moteur JavaScript effectue simplement une affectation, mais la console effectue une étape supplémentaire qui consiste à définir la dernière instruction, quelle qu'elle soit, et à vous rendre cette valeur. C'est pourquoi il imprime 2 :
Dans les déclarations qui n'ont pas de valeur de retour, vous obtenez quelque chose comme undefined.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.