Parece que la mayoría de los consejos interesantes e importantes ya se han mencionado, por lo que este es solo una pequeña adición.
El pequeño consejo es la función jQuery.each (objeto, devolución de llamada) . Probablemente todos estén usando jQuery.each (devolución de llamada) para iterar sobre el objeto jQuery en sí porque es natural. La función de utilidad jQuery.each (objeto, devolución de llamada) itera sobre objetos y matrices. Durante mucho tiempo, de alguna manera no vi para qué podría ser, aparte de una sintaxis diferente (no me importa escribir todos los bucles de moda), y me da un poco de vergüenza que me di cuenta de su fuerza principal recientemente.
La cuestión es que, dado que el cuerpo del bucle en jQuery.each (objeto, devolución de llamada) es una función , siempre obtiene un nuevo alcance en el bucle que es especialmente conveniente cuando crea cierres en el bucle.
En otras palabras, un error común típico es hacer algo como:
var functions = [];
var someArray = [1, 2, 3];
for (var i = 0; i < someArray.length; i++) {
functions.push(function() { alert(someArray[i]) });
}
Ahora, cuando invoque las funciones en la functions
matriz, recibirá una alerta tres veces con el contenido undefined
que probablemente no sea lo que deseaba. El problema es que solo hay una variable i
, y los tres cierres se refieren a ella. Cuando finaliza el ciclo, el valor final de i
es 3 y someArrary[3]
es undefined
. Podría solucionarlo llamando a otra función que crearía el cierre para usted. O usa la utilidad jQuery, que básicamente lo hará por usted:
var functions = [];
var someArray = [1, 2, 3];
$.each(someArray, function(item) {
functions.push(function() { alert(item) });
});
Ahora, cuando invocas las funciones, obtienes tres alertas con el contenido 1, 2 y 3 como se esperaba.
En general, no es nada que no puedas hacer tú mismo, pero es bueno tenerlo.