web-dev-qa-db-fra.com

node.js affiche "undefined" sur la console

Récemment, j'ai installé node.js sur ma machine Windows 7.

Lors de l'exécution de JavaScript, j'obtiens un message non défini avec une exécution réussie de l'expression.

Qu'est-ce qui ne va pas ici? Je n'ai remarqué aucun autre effet secondaire.

enter image description here

45
Sandeep G B

Ecrivez "hello world"; et appuyez sur Entrée ... il renverra "hello world" au lieu de undefined, donc aucun undefined ne s'affiche. console.log renvoie undefined et enregistre également les arguments sur la console afin que vous obteniez plusieurs messages.

29
Esailija

Les fonctions JavaScript retournent toujours quelque chose. Si vous ne spécifiez pas quelque chose à retourner dans la fonction, 'undefined' est retourné par défaut (vous pouvez aussi le vérifier dans Firebug).

Mais ne vous inquiétez pas, cela n'affecte rien, vous pouvez l'ignorer.

44
alessioalex

Comme souligné par d'autres, la fonction javascript retournera toujours indéfinie si vous ne spécifiez aucune valeur de retour. Vous pouvez simplement l'ignorer. Cela ne causera aucun mal. Mais si cela vous ennuie trop, vous pouvez le désactiver en réponse. Repl a cette propriété ignoreUndefined qui est définie sur false par défaut. Vous pouvez le définir sur true. Essaye ça:

module.exports.repl.ignoreUndefined = true;
19
AvinashB

Eh bien, la question a été posée il y a quelques années, mais il y a encore une autre façon d'expliquer ce qui se passe ici.

Essayez la commande suivante:

console.log("Hello World") || "Bye World";

Comme mentionné, la fonction console.log() retourne undefined normalement et vous pouvez choisir une meilleure valeur de retour. Puisque la comparaison non stricte (abstraite) considère undefined égal à false, l'opérateur || Vous permet ce choix.

Étant donné qu'il ne s'agit que d'un outil de débogage, cela n'est pas nécessaire en général, mais aide à comprendre que la console affiche le texte envoyé à stdout et évalue également la commande et affiche le retour ou indéfini si aucune valeur n'a été reçue.

7
Melo Waste

Si vous devez activer ignoreUndefined depuis l'intérieur d'un module, vous pouvez utiliser la ligne suivante pour simuler la réponse de AvinashB sans taper vous-même dans la console:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
4
RienNeVaPlu͢s

node affiche également undefined car EN GÉNÉRAL, il affiche la valeur de retour de chaque commande et console.log ne renvoie rien.

3
student

cela se produit parce que console.log a un type de retour (nul/non défini) pour résoudre ce problème .. avoir une fonction renvoyant une chaîne .. puis enregistrer cette fonction a renvoyé une valeur ... qui surmontera le problème non défini ..

const addNotes= function(msg)
{
    return msg;
}
console.log(addNotes('say hello'));
1
Mahmoud Sayed