Maison > Article > interface Web > Pourquoi l'instruction « return » de JavaScript renvoie-t-elle parfois « undéfini » ?
L'énigme mystérieuse des déclarations de retour de JavaScript
Considérez l'extrait de code JavaScript suivant :
function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());
Étonnamment, correct() renvoie la valeur attendue de 15, tandis que incorrect() renvoie undéfini. Ce comportement diffère de la plupart des autres langages de programmation, nous laissant nous demander pourquoi il se produit.
L'explication technique : les points-virgules invisibles
Les points-virgules de JavaScript sont facultatifs et l'interpréteur les insère automatiquement à certains caractères de nouvelle ligne. Cependant, les hypothèses de l'interprète ne correspondent pas toujours à nos intentions.
Dans le cas de false(), l'instruction return est suivie d'une nouvelle ligne. Cela déclenche l'insertion d'un point-virgule, ce qui donne le code suivant :
function wrong() { return; 15; }
Décomposition du problème : syntaxe de retour
L'instruction return doit être immédiatement suivie de la valeur de retour. Dans false(), le point-virgule après return termine l'instruction, laissant la ligne suivante déconnectée.
La solution : mettre les expressions entre parenthèses
Pour éviter cette confusion, nous peut mettre l'expression de retour entre parenthèses :
function wrong() { return ( 15 ); }
Les parenthèses empêchent l'interpréteur d'insérer un point-virgule et garantissent que l'expression est correctement évaluée.
Comprendre le raisonnement de TypeScript
TypeScript, le sur-ensemble typé de JavaScript, génère une erreur de compilation dans le code ci-dessus, soulignant l'importance d'une syntaxe correcte de l'instruction return. Cela souligne le caractère critique de ces considérations lors de la définition de fonctions en JavaScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!