web-dev-qa-db-fra.com

Pourquoi console.log indique-t-il non défini, puis la valeur correcte?

console.log("hi") gives 
undefined
hi

console.log(1+1) gives 
undefined
2

Que ce soit un calcul de chaîne ou d'entier, je reçois indéfini puis la bonne réponse.

Pourquoi reçois-je le message non défini? Existe-t-il un bon moyen de l'éviter?

27
Michael Durrant

La console affichera le résultat de l'évaluation d'une expression. Le résultat de l'évaluation de console.log() est undefined puisque console.log ne renvoie pas explicitement quelque chose. Il a pour effet secondaire d'imprimer sur la console.

Vous pouvez observer le même comportement avec de nombreuses expressions:

> var x = 1;
undefined;

Une déclaration de variable ne produit pas de valeur, donc de nouveau undefined est imprimé sur la console.

À titre de contre-exemple, les expressions contenant des opérateurs mathématiques produisent une valeur qui est imprimée sur la console au lieu de undefined:

> 2 + 2;
4
22
James Allardice

undefined est la valeur de retour de console.log(). Il s'agit du comportement standard de Chrome JS Console

8
Adrian

La console affiche la valeur de retour de votre entrée. console.log () ne renvoie rien, donc indéfini.

Vous pouvez simplement taper directement dans la console pour obtenir le résultat

2
cooper667

Il renvoie la valeur de console.log(...).

Définissez deux fonctions comme celle-ci et vous comprendrez pourquoi.

function functionA() {
  return 1; 
}
function functionB() {
  return;
}

La functionB() renvoie undefined.

enter image description here

2
Ali Gajani

En effet, console.log() ne renvoie pas de valeur (c'est-à-dire renvoie undefined). Le résultat de tout ce que vous avez entré dans la console est d'abord imprimé sur la console, puis un peu plus tard le message de console.log atteint la console et est également imprimé.

Si un navigateur n'affiche pas l'indéfini, cela signifie qu'il a remarqué que l'entrée de votre console ne s'imprime que sur la console, et ignore donc le résultat.

1
PurkkaKoodari