¿Cómo puedo determinar si una variable es "indefinida" o "nula"?
¿ Cómo puedo determinar si una variable es undefined
o 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.
Puedes utilizar las cualidades del operador de igualdad abstracta para hacer esto:
if (variable == null){
// your code here.
}
Como null == undefined
es cierto, el código anterior detectará tanto null
como undefined
.
La forma estándar de capturar null
y undefined
simultá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 typeof
son 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
/ catch
si está trabajando con entradas sobre las que no tiene control.
No deberías tener ninguna referencia a variables no declaradas en tu código.