¿Es posible buscar null e indefinido en javascript?¿Cómo comprobar tanto nulo como indefinido en js?
if(_var == null || _var == undefined) {
}
¿Es posible buscar null e indefinido en javascript?¿Cómo comprobar tanto nulo como indefinido en js?
if(_var == null || _var == undefined) {
}
sí
Sin embargo, utilizando el operador == no es NECESARIO. usar foo == null también será cierto para foo no está definido. Sin embargo, tenga en cuenta que indefinido y nulo o no (!) Lo mismo. Es porque == escribe coersion que foo == null también es verdadero para foo no está definido.
+1, esta es la forma más rápida de lograrlo, y está completamente descrito en la especificación: [El algoritmo de comparación de igualdad abstracta] (http://bclary.com/2004/11/07/#a-11.9.3) (no se preocupe por la coerción de tipo) ... 'if (_var == null) {...}' – CMS
también puede utilizar $defined
función en mootools (y debe haber un equivalente en jQuery)
En JavaScript (pre ECMAScript 5), undefined
no es una constante, sino una variable global, y por lo tanto es posible cambiar su valor Por lo tanto, sería más fiable utilizar el operador typeof
para comprobar si hay undefined
:
if (typeof _var === 'undefined') { }
Además, su expresión se obtendrá una ReferenceError si la variable _var
no se ha declarado. Sin embargo, aún podría probarlo con el operador typeof
como se muestra arriba.
Por lo tanto, es posible que prefiera utilizar el siguiente:
if (typeof _var === 'undefined' || _var === null) { }
Su primer caso es un poco arriesgado ya que _var podría establecerse en algún otro valor falso que nulo. –
@snowlord: cierto. Eliminé esa parte. –
Afortunadamente ahora en ECMAScript 5, 'undefined' es una propiedad del objeto global que no es modificable, no configurable (no eliminable) y no enumerable :) – CMS
if (!_var) {
// Code here.
}
Esto debería funcionar, ya que ambos están undefined
y null
tipo coaccionado a false
.
Por supuesto que es el pequeño problema si _var
es en realidad false
pero funciona ya que en la mayoría de los casos que se quieren saber si _var
no es true
y no un objeto.
Tenga en cuenta que hay otros tres valores falsy en JavaScript, aparte de 'false',' null' y 'undefined': una cadena vacía' "" ',' 0' y 'NaN'. –
Cambiaría ambas expresiones, pero debería funcionar. –
Si '_var' es' undefined', la expresión '_var == undefined' nunca será alcanzada, porque' _var == null' no escribe coerción, [como Pim anota más abajo] (http://stackoverflow.com/questions/2860058/how-to-check-for-both-null-and-undefined-in-js/2860063 # 2860063) y 'undefined == null' devuelve' true'. El '_var == null' también estará probando' undefined', sin embargo, creo que confiar en la coerción de tipo generalmente no es recomendable. –