Estoy tratando de iterar a través de una serie de elementos. La documentación de jQuery dice:
Devolver no falso es lo mismo que una declaración de continuación en un bucle for, saltará inmediatamente a la siguiente iteración.
He intentado llamar a 'return non-false'; y 'no falso'; (sin retorno) ninguno de los cuales salta a la siguiente iteración. En cambio, rompen el ciclo. ¿Qué me estoy perdiendo?
javascript
jquery
iteration
Josh
fuente
fuente
Respuestas:
Lo que quieren decir con no falso es:
Entonces este código:
registrará
one
,two
,four
,five
.fuente
Por 'retorno no falso', significan devolver cualquier valor que no resulte a booleano falso. Por lo que podría volver
true
,1
,'non-false'
, o cualquier otra cosa que pueda imaginar.fuente
Javascript tiene la idea de "veracidad" y "falsedad". Si una variable tiene un valor, generalmente, como verá, tiene "veracidad": nula o ningún valor tiende a "falsedad". Los fragmentos a continuación pueden ayudar:
Espero que eso ayude?
Además, vale la pena ver estos videos de Douglas Crockford
actualización: gracias @cphpython por detectar los enlaces rotos - He actualizado para apuntar a versiones que funcionan ahora
El lenguaje Javascript
Javascript - Las partes buenas
fuente
0
también es un valor falso y la negación del mismo es verdadera (y viceversa a cualquier otro número, por ejemplo!-42 === false
).No olvide que a veces puede caerse del final del bloque para pasar a la siguiente iteración:
En lugar de regresar de esta manera:
fuente
El ciclo solo se rompe si regresas literalmente
false
. Ex:Esto significa que puede devolver cualquier otra cosa, incluido
undefined
, que es lo que devuelve si no devuelve nada, por lo que simplemente puede usar una declaración de devolución vacía:Es posible que esto varíe según la versión; Esto es aplicable para jquery 1.12.4. Pero realmente, cuando sale de la parte inferior de la función, tampoco está devolviendo nada, y es por eso que el ciclo continúa, por lo que esperaría que no haya ninguna posibilidad de que devolver nada no pueda continuar el ciclo. A menos que quieran obligar a todos a comenzar a devolver algo para mantener el ciclo en marcha, devolver nada tiene que ser una forma de mantenerlo en marcha.
fuente
jQuery.noop () puede ayudar
fuente