Ich habe eine Funktion:
function myfunction() {
if (a == 'stop') // How can I stop the function here?
}
Gibt es so etwas wie exit()
in JavaScript?
javascript
Simon
quelle
quelle
for
Schleife. Selbst dann habe ich keine Ahnung, warum die vorgeschlagene Methode verwendet werden würde, wenn Sie nur aufrufen könntenbreak;
. So verwenden Sie das Beispiel aus dem Artikel:if(i==5) break;
Mitreturn
wird die Ausführung der Funktion angehalten, unabhängig davon, ob Sie sich in einerfor
Schleife befinden oder nicht .return
stoppt die Ausführung der Funktion, wie Sie es gefragt haben.Antworten:
Sie können einfach verwenden
return
.Dies sendet einen Rückgabewert von
undefined
an die Funktion.Natürlich können Sie einen anderen Rückgabewert angeben. Der zurückgegebene Wert wird anhand des obigen Beispiels in der Konsole protokolliert.
quelle
undefined
, und das bietet meine primäre Lösung. In dem Artikel, auf den Sie verwiesen haben, geht es um die Ausführungreturn false
in einem jQuery-Ereignishandler. Das ist ein ganz anderes Thema. Dies ist der richtige Weg, um eine JavaScript-Funktion zu beenden. Wenn sich der Anrufer auf den zurückgegebenen Wert verlässt, muss der Wert natürlich entsprechend definiert werden.if(a != 'stop') { /* run my code */ }
dass der Code nur ausgeführt wird, wenn era
nicht gleich ist,'stop'
ohne eine explizite Angabe zu machenreturn
. Der Rückgabewert ist jedoch identisch mit meiner Lösung . In beiden Fällenundefined
wird zurückgegeben.undefined
einen Rückgabewert empfängt (oder keinen anderen Wert erhält), müssen Sie die Spezifikation dieser API einhalten und den richtigen Wert zurückgeben. Im Allgemeinen wird für ein Ereignisbehandlungssystemundefined
als einfacher Hinweis erwartet , dass der Handler fertig ist, und es gibt keine weiteren Anweisungen. Hat mit jQueryreturn false;
eine besondere Bedeutung und gibt Anweisungen, um einpreventDefault
und zu tunstopPropagation
.Anscheinend können Sie dies tun:
Siehe Blockbereiche mithilfe eines Labels: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
Ich kann noch keine Nachteile erkennen. Aber es scheint keine übliche Verwendung zu sein.
Abgeleitet diese Antwort: JavaScript-Äquivalent von PHPs Würfel
quelle
return false;
ist viel besser als nurreturn;
quelle
false
besser? Ich würde sagen, der Standardundefined
ist im generischen Fall besser. In jedem Fall sagen Sie zu Recht, dass es oft besser ist, einen aussagekräftigen Wert zurückzugeben.false
als zurückzukehrenundefined
.Diese:
quelle
Mit einem etwas anderen Ansatz können Sie
try catch
mit throw-Anweisung verwenden.quelle
Wenn Sie nach einem Skript suchen, um das Senden von Formularen zu vermeiden, wenn Fehler gefunden werden, sollte diese Methode funktionieren
Ändern Sie den Typ der Schaltfläche " Senden " in "Schaltfläche".
Ich hoffe das hilft.
quelle
Die Verwendung von a
return
stoppt die Funktion und gibt zurückundefined
oder den Wert, den Sie mit dem Befehl return angeben.quelle
Ich mag es nicht, Dinge zu beantworten, die keine echte Lösung sind ...
... aber als ich auf dasselbe Problem stieß, habe ich die folgende Problemumgehung durchgeführt:
Hoffe, es kann für jeden nützlich sein.
quelle
Ich denke, ein neuer Fehler ist ein guter Ansatz, um die Ausführung zu stoppen, anstatt nur return oder false zurückzugeben. Zum Beispiel. Ich überprüfe eine Reihe von Dateien, bei denen ich nur maximal fünf Dateien zum Hochladen in einer separaten Funktion zulasse.
Aber ich rufe diese Funktion von der Hauptflussfunktion als auf
Im obigen Beispiel kann ich die Ausführung nur stoppen, wenn ich einen neuen Fehler auslöse. Nur return oder return false funktioniert nur, wenn Sie sich in der Hauptfunktion der Ausführung befinden, andernfalls funktioniert es nicht.
quelle
Ausfahrt(); kann verwendet werden, um für die nächste Validierung zu gehen.
quelle
Wenn Sie jquery verwenden. Dies sollte verhindern, dass die Funktion sprudelt, sodass die übergeordnete Funktion, die dies aufruft, ebenfalls stoppt.
quelle
stopImmediatePropagation()
ist keine jQuery-Sache, und das Stoppen der Weitergabe ist nicht dasselbe wie das Beenden einer Funktion.Geben Sie einen beliebigen Befehl ein, der einen Fehler auslöst. Beispiel:
oder
quelle