Ich versuche, durch eine Reihe von Elementen zu iterieren. In der Dokumentation von jQuery heißt es:
Die Rückgabe von non-false entspricht einer continue-Anweisung in einer for-Schleife. Sie springt sofort zur nächsten Iteration.
Ich habe versucht, "return non-false" zu nennen. und 'nicht falsch;' (ohne Rückgabe) Keiner von beiden springt zur nächsten Iteration. Stattdessen brechen sie die Schleife. Was vermisse ich?
javascript
jquery
iteration
Josh
quelle
quelle
Antworten:
Was sie mit nicht falsch meinen, ist:
Also dieser Code:
loggt
one
,two
,four
,five
.quelle
Mit 'return non-false' meinen sie, jeden Wert zurückzugeben, der nicht zu boolean false führen würde. So könnten Sie zurückkehren
true
,1
,'non-false'
, oder was auch immer Sie denken können.quelle
Javascript hat die Idee von "Wahrhaftigkeit" und "Falschheit". Wenn eine Variable einen Wert hat, hat sie im Allgemeinen 9 (wie Sie sehen werden) 'Wahrhaftigkeit' - null, oder kein Wert neigt zu 'Falschheit'. Die folgenden Ausschnitte könnten helfen:
Hoffentlich hilft das?
Es lohnt sich auch, diese Videos von Douglas Crockford anzusehen
update: danke @cphpython für das Erkennen der defekten Links - ich habe aktualisiert, um jetzt auf funktionierende Versionen zu verweisen
Die Javascript-Sprache
Javascript - Die guten Teile
quelle
0
Übrigens ist es auch ein falscher Wert und die Negation davon ist wahr (und umgekehrt zu jeder anderen Zahl, z!-42 === false
. B. ).Vergessen Sie nicht, dass Sie manchmal einfach vom Ende des Blocks fallen können, um zur nächsten Iteration zu gelangen:
Anstatt tatsächlich so zurückzukehren:
quelle
Die Schleife wird nur unterbrochen, wenn Sie buchstäblich zurückkehren
false
. Ex:Dies bedeutet, dass Sie alles andere zurückgeben können, einschließlich dessen
undefined
, was Sie zurückgeben, wenn Sie nichts zurückgeben. Sie können also einfach eine leere return-Anweisung verwenden:Möglicherweise variiert dies je nach Version. Dies gilt für jquery 1.12.4. Aber wirklich, wenn Sie den unteren Rand der Funktion verlassen, geben Sie auch nichts zurück, und deshalb wird die Schleife fortgesetzt. Daher würde ich erwarten, dass es überhaupt keine Möglichkeit gibt, dass die Rückgabe von nichts die Schleife nicht fortsetzen kann. Es sei denn , sie alle zwingen wollen , etwas zu beginnen Rückkehr der Schleife in Gang zu halten, nichts Rückkehr hat einen Weg , um es zu halten.
quelle
jQuery.noop () kann helfen
quelle