Sé que a continuación se encuentran las dos formas en JavaScript para verificar si una variable no lo es null
, pero estoy confundido sobre cuál es la mejor práctica para usar.
Deberia hacer:
if (myVar) {...}
o
if (myVar !== null) {...}
Sé que a continuación se encuentran las dos formas en JavaScript para verificar si una variable no lo es null
, pero estoy confundido sobre cuál es la mejor práctica para usar.
Deberia hacer:
if (myVar) {...}
o
if (myVar !== null) {...}
Respuestas:
No son equivalentes. El primero ejecutará el bloque después de la if
declaración si myVar
es verdadero (es decir, se evalúa true
en condicional), mientras que el segundo ejecutará el bloque si myVar
es cualquier valor distinto de null
.
Los únicos valores que no son verdaderos en JavaScript son los siguientes (también conocidos como valores falsos ):
null
undefined
0
""
(la cadena vacía)false
NaN
Aquí es cómo puede probar si una variable no es NULL:
if (myVar !== null) {...}
el bloque se ejecutará si myVar no es nulo ... se ejecutará si myVar es indefinido o falso 0
o NaN
o cualquier otra cosa ...
("")
e indefinida. Vea mi violín como referencia: jsfiddle.net/b0tm7yaf
Lee en esta publicación: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
Tiene algunos buenos consejos para JavaScript en general, pero una cosa que sí menciona es que debe verificar nulo como:
if(myvar) { }
También menciona lo que se considera 'falsey' que quizás no te des cuenta.
if(myVar) { code }
NO se ejecutará solo cuando myVar
sea igual a: false, 0, "", null, undefined, NaN
o si nunca definió la variablemyVar
(luego, además, el código detiene la ejecución y lanza una excepción).if(myVar !== null) {code}
NO se ejecutará solo cuando myVar
sea igual null
o nunca lo hayas definido (lanza una excepción).Aquí tienes todo ( src )
Si
== (su negación ! = )
=== (su negación ! == )
Hay otro escenario posible que acabo de encontrar.
Hice una llamada ajax y recuperé los datos como nulos, en formato de cadena. Tuve que comprobarlo así:
if(value != 'null'){}
Entonces, nulo era una cadena que decía "nulo" en lugar de ser realmente nulo.
EDITAR: Debe entenderse que no estoy vendiendo esto como debería hacerse. Tuve un escenario en el que esta era la única forma en que se podía hacer. No estoy seguro de por qué ... tal vez el tipo que escribió el back-end estaba presentando los datos incorrectamente, pero de todos modos, esta es la vida real. Es frustrante ver que alguien que entiende que no es correcto lo rechaza y luego lo vota alguien que realmente ayuda.
null
cadenas.
value = JSON.parse(value)
y luego use la value != null
prueba simple y adecuada
si myVar
es nulo, entonces si el bloque no se ejecuta de otra manera, se ejecutará.
if (myVar != null) {...}
'null'
, sino el valor especial null
.
Las dos declaraciones condicionales que enumera aquí no son mejores una de la otra. Su uso depende de la situación. Tienes un error tipográfico en el segundo ejemplo. Debe haber solo un signo igual después del signo de exclamación.
El primer ejemplo determina si el valor en myVar es verdadero y ejecuta el código dentro de {...}
El segundo ejemplo evalúa si myVar no es igual a nulo y si ese caso es verdadero, ejecutará su código dentro de {...}
Sugiero echar un vistazo a las declaraciones condicionales para obtener más técnicas. Una vez que esté familiarizado con ellos, puede decidir cuándo los necesita.
=
es crucial y hace una gran diferencia en la pregunta. ¿Quizás no conozca la existencia !==
y los ===
operadores en JavaScript?