y a-t-il quelque chose comme isset de php dans javascript/jQuery? [dupliquer]

cette question a déjà une réponse ici:

y a-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 ça.

grâce.

68
demandé sur Emile Bergeron 2010-11-20 11:01:39

11 réponses

essayez cette expression:

typeof(variable) != "undefined" && variable !== null

cela sera vrai si la variable est définie et non nulle, ce qui est l'équivalent du fonctionnement de l'isset de PHP.

Vous pouvez l'utiliser comme ceci:

if(typeof(variable) != "undefined" && variable !== null) {
    bla();
}
125
répondu Emil Vikström 2014-01-23 14:38:29

JavaScript isset () on 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;
}
9
répondu Oleg 2014-12-03 21:13:16

typeof servira le but je pense que

if(typeof foo != "undefined"){}
3
répondu DanneManne 2010-11-20 08:06:59

Si vous voulez vérifier si une propriété existe: hasOwnProperty est le chemin à parcourir

et puisque la plupart des objets sont des propriétés d'un autre objet (conduisant éventuellement à l'objet window ) cela peut bien fonctionner pour vérifier si des valeurs ont été déclarées.

3
répondu zzzzBov 2010-11-20 08:18:05

pas naturellement, non... Cependant, un googling de la chose a donné ceci: http://phpjs.org/functions/isset:454

2
répondu Ioannis Karadimas 2010-11-20 08:06:05

http://phpjs.org/functions/isset:454

phpjs project est une source fiable. Beaucoup de JS fonctions php équivalentes disponibles là-bas. Je l'utilise depuis longtemps et n'a trouvé aucun problèmes jusqu'à présent.

2
répondu Sandeepan Nath 2010-11-20 08:14:15

le problème est que passer une variable non définie à une fonction provoque une erreur.

cela signifie que vous devez exécuter typeof avant de le passer comme argument.

le moyen le plus propre que j'ai trouvé pour faire ceci est comme ceci:

function isset(v){
    if(v === 'undefined'){
        return false;
    }
    return true;
}

Utilisation:

if(isset(typeof(varname))){
  alert('is set');
} else {
  alert('not set');
}

maintenant le code est beaucoup plus compact et lisible.

Cela va donner une erreur si vous essayez d'appeler une variable à partir d'une variable non instanciée comme:

isset(typeof(undefVar.subkey))

donc avant d'essayer d'exécuter cette fonction, vous devez vous assurer que l'objet est défini:

undefVar = isset(typeof(undefVar))?undefVar:{};
1
répondu Dieter Gribnitz 2013-12-19 09:25:56

ici:)

function isSet(iVal){
 return (iVal!=="" && iVal!=null && iVal!==undefined && typeof(iVal) != "undefined") ? 1 : 0;
} // Returns 1 if set, 0 false
0
répondu Mr Bill 2014-04-21 17:19:42

en plus de @emil-vikström 'S réponse, vérifier pour variable!=null serait vrai pour variable!==null ainsi que pour variable!==undefined (ou typeof(variable)!="undefined" ).

0
répondu user2619604 2014-06-15 16:39:22

certaines parties de chacune de ces réponses fonctionnent. Je les ai compilés dans une fonction "isset" comme la question le demandait et fonctionne comme en PHP.

// isset helper function 
var isset = function(variable){
    return typeof(variable) !== "undefined" && variable !== null && variable !== '';
}

voici un exemple d'utilisation:

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 détailler ce que chaque partie fait:

  1. typeof(variable) !== "undefined" vérifie si la variable est défini à tous
  2. variable !== null vérifie si la variable est nulle (certaines personnes placent explicitement null et ne pensent pas que si elle est placée à null que c'est correct, dans ce cas, supprimer cette partie)
  3. variable !== '' vérifie si la variable est définie à une chaîne vide, vous pouvez le supprimer si une chaîne vide en compte que pour votre cas d'utilisation

Espérons que cela aide quelqu'un :)

0
répondu stuyam 2015-12-09 17:10:20

Vous pouvez tout simplement:

if(variable||variable===0){
    //Yes it is set
    //do something
}
else {
    //No it is not set
    //Or its null
    //do something else 
}
-1
répondu a1204773 2014-04-07 10:14:30