¿Cómo puedo determinar si una variable es "indefinida" o "nula"?

Resuelto sadmicrowave asked hace 14 años • 34 respuestas

¿ Cómo puedo determinar si una variable es undefinedo null?

Mi código es el siguiente:

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  // DO SOMETHING
};
<div id="esd-names">
  <div id="name"></div>
</div>

Pero cuando hago esto, el intérprete de JavaScript detiene la ejecución.

sadmicrowave avatar Apr 16 '10 01:04 sadmicrowave
Aceptado

Puedes utilizar las cualidades del operador de igualdad abstracta para hacer esto:

if (variable == null){
    // your code here.
}

Como null == undefinedes cierto, el código anterior detectará tanto nullcomo undefined.

Sarfraz avatar Apr 15 '2010 18:04 Sarfraz

La forma estándar de capturar nully undefinedsimultáneamente es esta:

if (variable == null) {
     // do something 
}

--que es 100% equivalente al más explícito pero menos conciso:

if (variable === undefined || variable === null) {
     // do something 
}

Al escribir JS profesional, se da por sentado que se comprende la igualdad de tipos y el comportamiento de ==vs. ===Por lo tanto usamos ==y solo comparamos con null.


Editar de nuevo

Los comentarios que sugieren el uso de typeofson simplemente incorrectos. Sí, mi solución anterior provocará un error de referencia si la variable no existe. Ésto es una cosa buena. Este ReferenceError es deseable: le ayudará a encontrar sus errores y corregirlos antes de enviar su código, tal como lo harían los errores del compilador en otros lenguajes. Utilice try/ catchsi está trabajando con entradas sobre las que no tiene control.

No deberías tener ninguna referencia a variables no declaradas en tu código.

temporary_user_name avatar Jan 22 '2014 03:01 temporary_user_name