web-dev-qa-db-fra.com

Vérifie si la variable est false et non pas true ou undefined

Quelle est la meilleure façon de vérifier si myvar javascript variable === false ou non (il peut également être indéfini).

if (myvar === false)

ce serait bien, mais myvar pourrait ne pas être défini. Seule la valeur false est acceptable et non indéfinie.

Tout plus court que if (typeof myvar !== "undefined" && myvar === false)?

15
Haradzieniec

Si la variable est déclarée alors:

if (myvar === false) {

fonctionnera bien. === ne considérera pas false comme non défini.

Si c'est undefined et undeclared, vérifiez son type avant d'essayer de l'utiliser (sinon vous obtiendrez une erreur de référence).

if(typeof myvar === 'boolean' && myvar === false) {

Cela dit, vous devez vous assurer que la variable est toujours déclarée si vous prévoyez d’essayer de l’utiliser.

var myvar;
// ...
// some code that may or may not assign a value to myvar
// ...
if (myvar === false) {
25
Quentin
if(typeof myvar === 'boolean' && !myvar)
2

Que diriez-vous de if (myvar !== undefined && myvar === false)?

1
bvx89

Dans nodejs en utilisant node-boolify il est possible

var Boolify = require('node-boolify').Boolify;
if (Boolify(myVar) == false) {
    //Instructions when satisfy
} else {
    //Instructions when not satisfy
}

Résultats de la conversion booléenne

Boolify(true); //true
Boolify('true'); //true
Boolify('TRUE'); //null
Boolify(1); //true
Boolify(2); //null
Boolify(false); //false
Boolify('false'); //false
Boolify('FALSE'); //null
Boolify(0); //false
Boolify(null); //null
Boolify(undefined); //null
Boolify(); //null
Boolify(''); //null
0
Ratan Uday Kumar

Si vous voulez vérifier si cas de fausseté , alors

if(myVar) {
  // Your conditional code here.....
}

devrait également fonctionner. Attention cependant, dans ce cas, zéro (0), une chaîne vide ("") ou un numéro inconnu (NaN) seront également considérés comme de la fausseté.

0
Nick Louloudakis