Existe-t-il quelque chose dans javascript/jQuery pour vérifier si la variable est définie/disponible ou non? En php, nous utilisons isset($variable)
pour vérifier quelque chose comme ceci.
merci.
Essayez cette expression:
typeof(variable) != "undefined" && variable !== null
Cela sera vrai si la variable est définie et non null, ce qui équivaut à la façon dont fonctionne isset de PHP.
Vous pouvez l'utiliser comme ceci:
if(typeof(variable) != "undefined" && variable !== null) {
bla();
}
JavaScript isset () sur PHP JS
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;
}
typeof servira le but je pense
if(typeof foo != "undefined"){}
Si vous voulez vérifier si une propriété existe: hasOwnProperty est le chemin à parcourir
Et comme la plupart des objets sont les propriétés d’un autre objet (menant éventuellement à l’objet window
), cela peut fonctionner pour vérifier si des valeurs ont été déclarées.
Pas naturellement, non ... Cependant, un article sur Google donna ceci: http://phpjs.org/functions/isset:454
http://phpjs.org/functions/isset:454
le projet phpjs est une source de confiance. Beaucoup de fonctions jp équivalentes js sont disponibles ici. J'utilise depuis longtemps et n'ai trouvé aucun problème jusqu'à présent.
Le problème est que le passage d'une variable non définie à une fonction provoque une erreur.
Cela signifie que vous devez exécuter typeof avant de le passer en argument.
Le moyen le plus propre que j'ai trouvé est le suivant:
function isset(v){
if(v === 'undefined'){
return false;
}
return true;
}
Usage:
if(isset(typeof(varname))){
alert('is set');
} else {
alert('not set');
}
Maintenant, le code est beaucoup plus compact et lisible.
Cela donnera quand même une erreur si vous essayez d'appeler une variable à partir d'une variable non instanciée telle que:
isset(typeof(undefVar.subkey))
par conséquent, avant d'essayer de l'exécuter, vous devez vous assurer que l'objet est défini:
undefVar = isset(typeof(undefVar))?undefVar:{};
en plus de la réponse de @ emil-vikström , la vérification de variable!=null
serait vraie pour variable!==null
ainsi que pour variable!==undefined
(ou typeof(variable)!="undefined"
).
Certaines parties de chacune de ces réponses fonctionnent. Je les ai tous compilés dans une fonction "isset" comme le demandait la question et fonctionne comme en PHP.
// isset helper function var isset = function(variable){ return typeof(variable) !== "undefined" && variable !== null && variable !== ''; }
Voici un exemple d'utilisation de la façon de l'utiliser:
var example = 'this is an example';
if(isset(example)){
console.log('the example variable has a value set');
}
Cela dépend de la situation pour laquelle vous en avez besoin, mais laissez-moi vous expliquer ce que chaque partie fait:
typeof(variable) !== "undefined"
vérifie si la variable est définievariable !== null
vérifie si la variable est null (certaines personnes ont explicitement défini la valeur null et ne pensent pas que si elle est définie sur null, c'est correct, dans ce cas, supprimez cette partie)variable !== ''
vérifie si la variable est définie sur une chaîne vide, vous pouvez la supprimer si une chaîne vide compte pour votre cas d'utilisationJ'espère que ça aide quelqu'un :)
Ici :)
function isSet(iVal){
return (iVal!=="" && iVal!=null && iVal!==undefined && typeof(iVal) != "undefined") ? 1 : 0;
} // Returns 1 if set, 0 false