it-swarm.com.de

Wie kann man überprüfen, ob eine Variable nicht null ist?

Ich weiß, im Folgenden gibt es zwei Möglichkeiten, in JavaScript zu prüfen, ob eine Variable nicht null ist, aber ich bin verwirrt, was die beste Vorgehensweise ist.

Soll ich tun:

if (myVar) {...}

oder

if (myVar !== null) {...}
234
nickb

Sie sind nicht gleichwertig. Der erste führt den Block nach der if-Anweisung aus, wenn myVar truthy ist (d. H. Wird in einer Bedingung zu true ausgewertet), während der zweite den Block ausführt, wenn myVar einen anderen Wert als null hat.

Die einzigen Werte, die in JavaScript nicht wahr sind, sind die folgenden Werte (a.k.a. falsy values):

  • null
  • undefined
  • 0
  • "" (die leere Zeichenfolge)
  • false
  • NaN
341
Tim Down

So können Sie testen, ob eine Variable nicht NULL ist:

if (myVar !== null) {...}

der Block wird ausgeführt, wenn myVar nicht null ist. Er wird ausgeführt, wenn myVar undefiniert oder falsch ist oder 0 oder NaN oder irgendetwas anderes.

57

Lesen Sie in diesem Post: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/

Es gibt ein paar nette Tipps für JavaScript im Allgemeinen, aber eine Sache, die erwähnt wird, ist, dass Sie nach null suchen sollten:

if(myvar) { }

Es wird auch erwähnt, was als "Falsey" betrachtet wird, das Sie möglicherweise nicht erkennen.

42

Es gibt ein anderes mögliches Szenario, auf das ich gerade gestoßen bin.

Ich machte einen Ajax-Aufruf und erhielt Daten als Null zurück, in einem String-Format. Ich musste es so überprüfen:

if(value != 'null'){}

Null war also eine Zeichenfolge, die "null" lautete und nicht wirklich null war.

EDIT: Es sollte verstanden werden, dass ich dies nicht so verkaufe, wie () getan werden sollte. Ich hatte ein Szenario, in dem dies der einzige Weg war. Ich bin mir nicht sicher, warum ... vielleicht hat der Typ, der das Back-End geschrieben hat, die Daten falsch dargestellt, aber trotzdem ist dies das richtige Leben. Es ist frustrierend zu sehen, dass jemand von jemandem die Entscheidung getroffen hat, dass er nicht ganz richtig ist, und dann von jemandem gewählt wird, der wirklich hilft. 

7
Flat Cat

Hier haben Sie alle ( src ):

if

 enter image description here 

== (seine Negation! = )

 enter image description here 

=== (seine Negation! == )

 enter image description here 

So

  • code in Ihrer if(myVar) { code } wird nur dann NICHT ausgeführt, wenn myVar gleich ist: false, 0, "", null, undefined, NaN oder Sie haben nie die Variable myVar definiert (dann stoppen Sie die Ausführung des Codes und lösen eine Ausnahme aus).
  • code in Ihrer if(myVar !== null) {code} wird nur dann NICHT ausgeführt, wenn myVar gleich null ist oder Sie ihn nie definiert haben (löst eine Ausnahme aus).
3

wenn myVar null ist, wird der Block ausgeführt, wenn er nicht anderweitig ausgeführt wird.

if (myVar != null) {...}

1
Sanjay Kumaar

Wenn es nicht einmal definiert wurde, ist es manchmal besser, darauf vorbereitet zu sein ..__ Dafür habe ich typeof verwendet.

if(typeof(variable) !== "undefined") {
    //it exist
    if(variable !== null) {
        //and is not null
    }
    else {
        //but is null
    }
}
else {
    //it doesn't
}
0
OpenUser