Heim > Artikel > Web-Frontend > Warum gibt die „return“-Anweisung von JavaScript manchmal „undefiniert“ zurück?
Das mysteriöse Return Statement-Rätsel von JavaScript
Betrachten Sie den folgenden JavaScript-Codeausschnitt:
function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());
Überraschenderweise richtig() gibt den erwarteten Wert von 15 zurück, während false() undefiniert zurückgibt. Dieses Verhalten unterscheidet sich von den meisten anderen Programmiersprachen und wir fragen uns, warum es auftritt.
Die technische Erklärung: Unsichtbare Semikolons
Die Semikolons von JavaScript und der Interpreter sind optional fügt sie automatisch an bestimmten Zeilenumbrüchen ein. Allerdings stimmen die Annahmen des Interpreters möglicherweise nicht immer mit unseren Absichten überein.
Im Fall von false() folgt auf die Return-Anweisung ein Zeilenumbruch. Dadurch wird das Einfügen eines Semikolons ausgelöst, was zu folgendem Code führt:
function wrong() { return; 15; }
Aufschlüsselung des Problems: Return-Syntax
Auf die return-Anweisung muss unmittelbar folgen der Rückgabewert. In false() beendet das Semikolon nach return die Anweisung und lässt die folgende Zeile getrennt.
Die Lösung: Ausdrücke in Klammern setzen
Um diese Verwirrung zu vermeiden, haben wir kann den Rückgabeausdruck in Klammern einschließen:
function wrong() { return ( 15 ); }
Die Klammern verhindern, dass der Interpreter ein Semikolon einfügt und stellen sicher, dass der Ausdruck korrekt ausgewertet wird.
Die Argumentation von TypeScript verstehen
TypeScript, die typisierte Obermenge von JavaScript, gibt im obigen Code einen Compilerfehler aus, was die Wichtigkeit einer korrekten Return-Anweisungssyntax hervorhebt. Dies unterstreicht die Wichtigkeit solcher Überlegungen bei der Definition von Funktionen in JavaScript.
Das obige ist der detaillierte Inhalt vonWarum gibt die „return“-Anweisung von JavaScript manchmal „undefiniert“ zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!