¿Cómo verifico valores nulos en JavaScript?

Resuelto Mahdi_Nine asked hace 13 años • 24 respuestas

¿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;
}
Mahdi_Nine avatar May 15 '11 01:05 Mahdi_Nine
Aceptado

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, undefinedy falselos números 0y NaN.

Tenga en cuenta que si está comprobando específicamente números, es un error común no utilizar 0este método, y num !== 0se prefiere (o num !== -1o ~num(código hacky que también verifica con -1)) para funciones que devuelven -1, por ejemplo indexOf).

 avatar May 14 '2011 18:05

Para verificar si hay nulos ESPECÍFICAMENTE, usarías esto:

if (variable === null)

Esta prueba SOLO pasará nully no pasará para "", undefined, false, 0o 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;

WebWanderer avatar Dec 18 '2014 16:12 WebWanderer

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.

ic3b3rg avatar May 14 '2011 18:05 ic3b3rg

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

Ingrese la descripción de la imagen aquí

a === b

Ingrese la descripción de la imagen aquí

Kamil Kiełczewski avatar Jul 23 '2020 10:07 Kamil Kiełczewski

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
Arshid KV avatar Jul 05 '2016 11:07 Arshid KV