J'essaie de parcourir un tableau d'éléments. La documentation de jQuery indique:
Renvoyer non-false est identique à une instruction continue dans une boucle for, il sautera immédiatement à l'itération suivante.
J'ai essayé d'appeler 'return non-false;' et «non faux»; (sans retour) aucun des deux ne passe à l'itération suivante. Au lieu de cela, ils rompent la boucle. Qu'est-ce que je rate?
Réponses:
Ce qu'ils entendent par non faux est:
Donc, ce code:
se connectera
one
,two
,four
,five
.la source
Par «retourner non faux», ils signifient renvoyer toute valeur qui ne fonctionnerait pas comme booléenne false. Ainsi , vous pouvez revenir
true
,1
,'non-false'
ou tout ce que vous pouvez imaginer.la source
Javascript a en quelque sorte l'idée de «véracité» et de «fausseté». Si une variable a une valeur, alors généralement 9 comme vous le verrez) elle a la «véracité» - nulle, ou aucune valeur ne tend à la «fausseté». Les extraits ci-dessous peuvent vous aider:
Espérons que cela aide?
En outre, cela vaut la peine de regarder ces vidéos de Douglas Crockford
mise à jour: merci @cphpython pour avoir repéré les liens rompus - j'ai mis à jour pour pointer vers les versions de travail maintenant
Le langage Javascript
Javascript - Les bonnes parties
la source
0
est également une valeur fausse et la négation de celle-ci est véridique (et vice-versa à tout autre nombre, par exemple!-42 === false
).N'oubliez pas que vous pouvez parfois simplement tomber de la fin du bloc pour passer à la prochaine itération:
Plutôt que de revenir comme ça:
la source
La boucle ne se brise que si vous revenez littéralement
false
. Ex:Cela signifie que vous pouvez retourner n'importe quoi d'autre, y compris
undefined
ce que vous retournez si vous ne retournez rien, vous pouvez donc simplement utiliser une instruction de retour vide:Il est possible que cela varie selon la version; cela s'applique à jquery 1.12.4. Mais vraiment, lorsque vous quittez le bas de la fonction, vous ne retournez rien non plus, et c'est pourquoi la boucle continue, donc je m'attends à ce qu'il n'y ait aucune possibilité que retourner rien ne puisse pas continuer la boucle. Sauf s'ils veulent forcer tout le monde à commencer à retourner quelque chose pour maintenir la boucle, rien ne doit être un moyen de continuer.
la source
jQuery.noop () peut vous aider
la source