Una fuente proyecto abierto JavaScript trabajo en código incluye:Javascript: ¿Por qué comparar con null?
if (color) {
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
Editor no quiere cambiar a
if (color != null) { // this line changed
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
de color es una cadena var. Solo se debe usar una cadena de más de 0 caracteres para establecer explícitamente el color.
Dado que JS arroja "" y nulo como booleano falso, ¿por qué sería necesaria la comparación! = Null?
¿Me falta algo al pensar que la primera forma es igual de buena (y un poco más corta) que la segunda?
Veo las comparaciones nulas con bastante frecuencia en JS source. ¿Por qué son necesarios cuando todos los objetos simples de JS tienen resultados conocidos cuando se emiten como booleanos?
Gracias,
Larry
ps. Supongo que si 0 (un entero) fuera un caso válido, entonces (0) sería falso [un problema] y si (0! = Nulo) sería cierto [permite el caso 0]. ¿Alguna otra razón?
pps. Debería haber mencionado que el tapeDiv es de nueva creación. Por lo tanto, no tiene sentido restablecer el estilo a "" ya que el div es completamente nuevo.
Para mí, prefiero que el código sea un poco más corto y asumir que los lectores entienden la lógica de casta y lógica booleana. Quizás sea solo el programador de Ruby en mí. Puede ser tradicional en js deletrear las cosas de forma más detallada ... –
No suele ser así. Recuerde que la fuente de JS en realidad se descarga, por lo que la brevedad es un plus. Y estoy de acuerdo con Larry. No sirve de nada evitar el reconocimiento de la forma en que funciona el tipado y el hechizo de JS. – user37078