validate - ¿Hay algo así como isset de php en javascript/jQuery?
tratar undefined javascript (11)
Algunas partes de cada una de estas respuestas funcionan. Los compilé todos en una función "isset" tal como lo hacía la pregunta y funciona como lo hace en PHP.
// isset helper function var isset = function(variable){ return typeof(variable) !== "undefined" && variable !== null && variable !== ''''; }
Aquí hay un ejemplo de uso de cómo usarlo:
var example = ''this is an example'';
if(isset(example)){
console.log(''the example variable has a value set'');
}
Depende de la situación en que lo necesite, pero permítame desglosar lo que hace cada parte:
-
typeof(variable) !== "undefined"
comprueba si la variable está definida en absoluto -
variable !== null
comprueba si la variable es nula (algunas personas establecen explícitamente nulo y no piensan si se establece en nulo que eso es correcto, en ese caso, elimine esta parte) -
variable !== ''''
comprueba si la variable está configurada en una cadena vacía, puede eliminarla si una cadena vacía cuenta como se establece para su caso de uso
Espero que esto ayude a alguien :)
Esta pregunta ya tiene una respuesta aquí:
- JavaScript isset () equivalente 17 respuestas
¿Hay algo en javascript / jQuery para verificar si la variable está configurada / disponible o no? En php, utilizamos isset($variable)
para verificar algo como esto.
Gracias.
Aquí :)
function isSet(iVal){
return (iVal!=="" && iVal!=null && iVal!==undefined && typeof(iVal) != "undefined") ? 1 : 0;
} // Returns 1 if set, 0 false
El problema es que pasar una variable indefinida a una función provoca un error.
Esto significa que debe ejecutar typeof antes de pasarlo como argumento.
La forma más limpia que encontré para hacer esto es así:
function isset(v){
if(v === ''undefined''){
return false;
}
return true;
}
Uso:
if(isset(typeof(varname))){
alert(''is set'');
} else {
alert(''not set'');
}
Ahora el código es mucho más compacto y legible.
Esto aún dará un error si intentas llamar a una variable desde una variable no instanciada como:
isset(typeof(undefVar.subkey))
por lo tanto, antes de intentar ejecutar esto, debe asegurarse de que el objeto esté definido:
undefVar = isset(typeof(undefVar))?undefVar:{};
No es natural, no ... Sin embargo, una búsqueda en Google de la cosa dio esto: http://phpjs.org/functions/isset:454
Prueba esta expresión:
typeof(variable) != "undefined" && variable !== null
Esto será cierto si la variable está definida y no es nula, que es el equivalente de cómo funciona isset de PHP.
Puedes usarlo así:
if(typeof(variable) != "undefined" && variable !== null) {
bla();
}
Si desea verificar si existe una propiedad: hasOwnProperty es el camino a seguir
Y dado que la mayoría de los objetos son propiedades de algún otro objeto (que eventualmente conduce al objeto window
) esto puede funcionar bien para verificar si los valores han sido declarados.
Tu puedes sólo:
if(variable||variable===0){
//Yes it is set
//do something
}
else {
//No it is not set
//Or its null
//do something else
}
además de la respuesta de @emil-vikström , ¡verificar la variable!=null
sería cierto para la variable!==null
así como para la variable!==undefined
(o typeof(variable)!="undefined"
).
typeof servirá el propósito, creo
if(typeof foo != "undefined"){}
function isset () {
// discuss at: http://phpjs.org/functions/isset
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: FremyCompany
// + improved by: Onno Marsman
// + improved by: Rafał Kukawski
// * example 1: isset( undefined, true);
// * returns 1: false
// * example 2: isset( ''Kevin van Zonneveld'' );
// * returns 2: true
var a = arguments,
l = a.length,
i = 0,
undef;
if (l === 0) {
throw new Error(''Empty isset'');
}
while (i !== l) {
if (a[i] === undef || a[i] === null) {
return false;
}
i++;
}
return true;
}
http://phpjs.org/functions/isset:454
El proyecto phpjs es una fuente confiable. Un montón de js equivalentes funciones de php disponibles allí. He estado usando desde hace mucho tiempo y no encontré problemas hasta el momento.