Wie kann man am zuverlässigsten prüfen, ob eine JavaScript-Variable null ist?

8

Was ist der zuverlässigste Weg, wenn ich überprüfen möchte, ob die Variable null ist oder nicht?

Es gibt verschiedene Beispiele:

%Vor%     
David García González 13.11.2009, 10:26
quelle

5 Antworten

13

Keine der oben genannten.

Sie möchten == oder eine Vielzahl davon nicht verwenden, da eine Typumwandlung durchführt . Wenn Sie wirklich überprüfen möchten, ob etwas explizit Null ist, verwenden Sie den Operator === .

Andererseits zeigt Ihre Frage vielleicht eine gewisse Unklarheit Ihrer Anforderungen. Meinst du eigentlich null ? oder zählt undefined auch? myVar === null wird Ihnen sicherlich sagen, wenn die Variable null ist, was die Frage ist, die Sie gestellt haben, aber ist das wirklich was Sie wollen?

Beachten Sie, dass es viel mehr Informationen in gibt SO Frage . Es ist kein direktes Duplikat, aber es deckt sehr ähnliche Prinzipien ab.

    
Andrzej Doyle 13.11.2009, 10:28
quelle
4

Ich bevorzuge

%Vor%

vermeidet die versehentliche Zuweisung in diesem Szenario

%Vor%

Bearbeiten

JavaScript hat sowohl einen strikten als auch einen typkonvertierenden Gleichheitsvergleich. Für eine strenge Gleichheit müssen die zu vergleichenden Objekte den gleichen Typ haben und:

%Vor%
  

Null und nicht definierte Typen sind == (aber nicht ===)

Lesen Sie Vergleichsoperatoren

    
rahul 13.11.2009 10:29
quelle
1

"undefined" ist nicht "null". Vergleichen Sie

  • Der Löffel ist leer (= null)
  • Es gibt keinen Löffel (= undefiniert)

einige Fakten, die Ihnen weiterhelfen können

  • typeof undefined ist "undefined"
  • typeof null ist "Objekt"
  • undefined gilt als gleich (==) zu null und umgekehrt
  • kein anderer Wert ist gleich (==) zu null oder zu undefiniert
user187291 13.11.2009 10:40
quelle
0

Wenn es Ihnen egal ist, ob es genau null oder undefiniert oder falsch oder 0 ist und Sie nur sehen wollen, ob es im Grunde "nicht gesetzt" ist, verwenden Sie überhaupt keinen Operator:

%Vor%     
Cory Petosky 13.11.2009 10:32
quelle
0

if (null == yourvar) und %Code% mache sehr unterschiedliche Dinge. Man nimmt an, dass die Variable existiert, die andere tut es. Ich würde vorschlagen, die beiden überhaupt nicht zu mischen. Wissen Sie, wann Sie erwarten, dass die Variable mit ihrer Präsenz fertig wird, bevor Sie mit ihrem Wert umgehen.

    
Peter Bengtsson 13.11.2009 10:42
quelle

Tags und Links