En JavaScript, si quieres determinar si una variable está definida, puedes usar typeof:
Ejemplo
if(typeof someVar == 'undefined') {
document.write("La variable someVar no está definida");
} else {
document.write("La variable someVar está definida");
}
document.write("La variable someVar no está definida");
} else {
document.write("La variable someVar está definida");
}
Pruébalo »
En JavaScript, si solo quieres comprobar si una variable definida es true, puedes usar directamente el siguiente método:
Ejemplo
if (strValue) {
// Código que se ejecuta si strValue es true
} else {
// Código que se ejecuta si strValue es false
}
// Código que se ejecuta si strValue es true
} else {
// Código que se ejecuta si strValue es false
}
Pruébalo »
El siguiente método usa expresiones regulares para determinar si una variable está definida y no está vacía; es un método más completo:
Ejemplo
if ( // Devuelve el valor de la comprobación
(typeof x == 'undefined')
||
(x == null)
||
(x == false) // Similar a: !x
||
(x.length == 0)
||
(x == 0) // Aquí se evalúa 0, no es necesario quitarlo deliberadamente
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
) {
document.write("La variable no está definida o está vacía");
}
(typeof x == 'undefined')
||
(x == null)
||
(x == false) // Similar a: !x
||
(x.length == 0)
||
(x == 0) // Aquí se evalúa 0, no es necesario quitarlo deliberadamente
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
) {
document.write("La variable no está definida o está vacía");
}
Pruébalo »
También se puede encapsular un método para evaluar, que incluya valores vacíos, 0, false, etc., adecuado para variables ya definidas:
Ejemplo
function empty(e) {
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case undefined:
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case undefined:
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
Pruébalo »