Cuando tiene operaciones booleanas, el compilador iniciar comprobar el uno por el otro, y se detendrá cuando el seguro de los resultados - por ejemplo, si le preguntas a
if(a && b && c)
{
}
si un es falso, entonces el booleano es falso, y el compilador no necesita comprobar byc. Este futuro del compilador se usa para abreviar el código de escritura para algunos casos.
Esto es (para mí) una mala práctica que la escritura de código.
!variable && function()
instide de
if(!variable) function();
tratar de minimizar el tamaño del Javascript?
Dificil de depurar, y es difícil encontrar lo que realmente dosifica en muchos casos.
Consulte este código similar.
unsigned uCycleCheckBox(unisgned uCur)
{
return ((uCur <= 1) ? (uCur?0:1) : (uCur==4)?2:(uCur+1));
}
es el mismo que ... difícil de entender, difícil de depurar, difíciles de cambiar y corregir en caso de problemas.
Para los comentarios sobre eso, sugiero leer los libros, Escribir código sólido y Debbuging el proceso de desarrollo.
Escribir código sólido es más importante que en todo lo demás.
'! Svg.bottom && (svg.bottom = this);' es bastante extraño ... sería más simple hacer 'svg.bottom = svg.bottom || esto'. – James
@EFraim, no solo si 'svg.bottom' es' null', también si 'undefined',' 0', 'NaN' es una cadena vacía, y por supuesto' false'. – CMS
Sí, es como una declaración abreviada 'if', aunque sería más claro usar if (! Svg.bottom) { svg.bottom = this; } –