it-swarm.com.de

Prüfen Sie, ob die Variable falsch ist und weder wahr noch undefiniert ist

Was ist der beste Weg, um zu überprüfen, ob myvar javascript variable === false oder nicht (es kann auch undefiniert sein).

if (myvar === false)

wäre gut, aber myvar könnte undefiniert sein. Nur der Wert false ist zulässig, nicht undefiniert.

Irgendein kürzeres als if (typeof myvar !== "undefined" && myvar === false)?

15
Haradzieniec

Wenn die Variable deklariert ist , dann:

if (myvar === false) {

wird gut funktionieren. === betrachtet false nicht als undefiniert.

Wenn es undefined und undeclared ist, sollten Sie den Typ überprüfen, bevor Sie versuchen, es zu verwenden (andernfalls erhalten Sie einen Referenzfehler).

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

Sie sollten jedoch sicherstellen, dass die Variable immer deklariert wird, wenn Sie beabsichtigen, sie zu verwenden.

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

Wie wäre es mit if (myvar !== undefined && myvar === false)?

1
bvx89

In nodejs mit node-boolify ist es möglich

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

Boolesche Konvertierungsergebnisse

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

Wenn Sie nach einem falsy-Fall suchen möchten, dann

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

sollte auch funktionieren. Beachten Sie jedoch, dass in diesem Fall Null (0), eine leere Zeichenfolge ("") oder Not-a-Number (NaN) ebenfalls als Fälschung betrachtet wird.

0