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.
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.
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.
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;
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.
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");
node
affiche également undefined
car EN GÉNÉRAL, il affiche la valeur de retour de chaque commande et console.log
ne renvoie rien.
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'));