¿Cómo verifico valores nulos en JavaScript?
¿Cómo puedo comprobar si hay valores nulos en JavaScript? Escribí el código a continuación pero no funcionó.
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("fill all columns");
return false;
}
JavaScript es muy flexible con respecto a la verificación de valores "nulos". Supongo que en realidad estás buscando cadenas vacías, en cuyo caso este código más simple funcionará:
if(!pass || !cpass || !email || !cemail || !user){
Lo cual buscará cadenas vacías ( ""
), null
, undefined
y false
los números 0
y NaN
.
Tenga en cuenta que si está comprobando específicamente números, es un error común no utilizar 0
este método, y num !== 0
se prefiere (o num !== -1
o ~num
(código hacky que también verifica con -1
)) para funciones que devuelven -1
, por ejemplo indexOf
).
Para verificar si hay nulos ESPECÍFICAMENTE, usarías esto:
if (variable === null)
Esta prueba SOLO pasará null
y no pasará para ""
, undefined
, false
, 0
o NaN
.
Además, he proporcionado comprobaciones absolutas para cada valor "falso" (uno que devolvería verdadero para !variable
).
Tenga en cuenta que para algunas de las comprobaciones absolutas, deberá implementar el uso de absolutely equals: ===
y typeof
.
He creado un JSFiddle aquí para mostrar todas las pruebas individuales funcionando.
Aquí está el resultado de cada verificación:
Null Test:
if (variable === null)
- variable = ""; (false) typeof variable = string
- variable = null; (true) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Empty String Test:
if (variable === '')
- variable = ''; (true) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Undefined Test:
if (typeof variable == "undefined")
-- or --
if (variable === undefined)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (true) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
False Test:
if (variable === false)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (true) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Zero Test:
if (variable === 0)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (true) typeof variable = number
- variable = NaN; (false) typeof variable = number
NaN Test:
if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)
-- or --
if (isNaN(variable))
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (true) typeof variable = number
Como puede ver, es un poco más difícil realizar pruebas NaN
;
simplemente reemplace el ==
con ===
en todos los lugares.
==
es una comparación de igualdad vaga o abstracta
===
es una comparación de igualdad estricta
Consulte el artículo de MDN sobre Comparaciones de igualdad y similitudes para obtener más detalles.
Puede verificar si algún valor es nulo de la siguiente manera
[pass,cpass,email,cemail,user].some(x=> x===null)
Mostrar fragmento de código
BONIFICACIÓN: ¿Por qué ===
es más claro que ==
( fuente ) ?
a == b
a === b
Operador de igualdad estricta:-
Podemos verificar nulo por===
if ( value === null ){
}
solo usandoif
if( value ) {
}
se evaluará como verdadero si el valor no es :
- nulo
- indefinido
- Yaya
- cuerda vacía ("")
- FALSO
- 0