JavaScript-Variable = null setzen oder undefiniert lassen?

Lesezeit: 4 Minuten

Ist es beim Deklarieren von Variablen am Anfang der JavaScript-Funktion am besten, sie auf null zu setzen oder als “undefiniert” zu belassen? Eine andere Möglichkeit zu fragen, welche Umstände für jede der folgenden Optionen erforderlich sind?

Möglichkeit A:

var a = null,
    b = null;

Möglichkeit B:

var a,
    b;

  • Ich gehe mit Option b

    – Herr Alien

    10. Mai 2013 um 3:39 Uhr

  • @Mr.Alien – einverstanden. Es gibt keinen Grund, die zu verwenden = null Version, es sei denn, es kommt tatsächlich darauf an, dass die Variablenwerte sind null Anstatt von undefined.

    – Michael Geary

    10. Mai 2013 um 3:47 Uhr

  • Eigentlich, var a, b; vielleicht nicht immer Lass es undefined. In früheren IE-Versionen müssten Sie diesen Codeabschnitt ändern in var a = undefined, b = undefined;andernfalls würde Ihr Code beim Versuch, darauf zuzugreifen, einen Fehler generieren (selbst wenn Sie nur versuchen wollten, einfach zu überprüfen, ob er einen Wert mit hat if (a && b), zum Beispiel). In diesem Fall weicht eine nicht gesetzte Variable ab undefined.

    – Falsarella

    8. Juli 2015 um 21:32 Uhr


  • Eine andere Frage, gibt es einen Unterschied in der Speicherverwaltung? stackoverflow.com/questions/68339963/…

    – 1,21 Gigawatt

    11. Juli 2021 um 21:10 Uhr

Es kommt auf den Kontext an.

  • „undefiniert“ bedeutet, dass dieser Wert nicht existiert. typeof gibt “undefiniert” zurück

  • “null” bedeutet, dass dieser Wert mit einem leeren Wert existiert. Wenn Sie verwenden typeof Um auf “null” zu testen, werden Sie sehen, dass es sich um ein Objekt handelt. In einem anderen Fall, wenn Sie den Wert “null” an einen Backend-Server wie asp.net mvc serialisieren, erhält der Server “null”, aber wenn Sie “undefiniert” serialisieren, erhält der Server wahrscheinlich keinen Wert.

Ich erkläre sie als undefiniert, wenn ich keinen Wert zuweise, weil sie schließlich undefiniert sind.

  • Ist es dann notwendig, undefiniert zu “zuweisen”, weil sie, wie Sie sagten, doch undefiniert sind?

    – VivekDev

    22. Januar 2017 um 10:00 Uhr

  • Wie bereits erwähnt, ist es nicht notwendig, undefined zu deklarieren, aber auch wenn Sie undefined deklarieren, wissen Sie beim Testen dieses Werts nicht, ob Sie ihn absichtlich gesetzt haben oder ob er nie wirklich gesetzt wurde. Aus diesem Grund bevorzuge ich null in Fällen, in denen möglicherweise kein Wert vorhanden ist.

    – Ian Hoar

    24. Januar 2018 um 5:03 Uhr


Benutzeravatar von KennyC
KennyC

Im Allgemeinen verwende ich null für Werte, von denen ich weiß, dass sie einen „null“-Zustand haben können; zum Beispiel

if(jane.isManager == false){
  jane.employees = null
}

Andernfalls, wenn es sich um eine Variable oder Funktion handelt, die noch nicht definiert ist (und daher im Moment nicht “benutzbar” ist), aber später eingerichtet werden soll, lasse ich sie normalerweise undefiniert.

Benutzeravatar von Vishal Sakaria
Vishal Sakaria

Generell habe ich definiert null wie es ein Mensch angibt, setzen Sie den Wert und undefined um anzuzeigen, dass keine Einstellung stattgefunden hat.

Benutzeravatar von snirad
schnirad

Normalerweise setze ich es auf das, was ich erwarte, dass es von der Funktion zurückgegeben wird.

Wenn es sich um eine Zeichenfolge handelt, setze ich sie auf eine leere Zeichenfolge =”, dasselbe gilt für Objekt ={} und Array=[]ganze Zahlen = 0.

Die Verwendung dieser Methode erspart mir die Suche nach null / undefiniert. Meine Funktion wird unabhängig vom Ergebnis wissen, wie sie mit Zeichenfolgen/Arrays/Objekten umgeht.

barbsans Benutzeravatar
barbsan

Seien Sie vorsichtig, wenn Sie diesen Wert verwenden, um die Eigenschaft und den Aufruf eines Objekts zuzuweisen JSON.stringify later* – Nullen bleiben, aber nicht definierte Eigenschaften werden weggelassen, wie im folgenden Beispiel:

var a, b = null;

c = {a, b};

console.log(c);
console.log(JSON.stringify(c)) // a omited

*oder eine Hilfsfunktion/Bibliothek, die auf ähnliche Weise funktioniert oder verwendet JSON.stringify unterhalb

Das einzige Mal, dass Sie es setzen müssen (oder nicht), ist, wenn Sie diese Variable explizit überprüfen müssen a genau eingestellt ist null oder undefined.

if(a === null) {

}

… ist nicht dasselbe wie:

if(a === undefined) {

}

Das gesagt, a == null && a == undefined wird zurückkehren true.

Geige

  • In diesem Fall auf null zu prüfen, ist nicht gut. Da es gegen die Best Practice “Nullvergleiche vermeiden” in Javascript verstößt. Sie sollten nur für DOM-Objekte mit null vergleichen (my.safaribooksonline.com/book/programming/javascript/…)

    – Khanh zu

    10. Mai 2013 um 4:04 Uhr

  • Ich stimme nicht zu; alles, was wir tun wollen, ist zu sehen, ob eine Variable tatsächlich ist null oder undefined – die absolut gültige Schecks sind. ich stimme zu dass es in Ihrem zitierten Beispiel eine schlechte Idee ist, dies zu überprüfen nullaber das ist nur ein Fall 🙂

    – Frottee

    10. Mai 2013 um 4:09 Uhr

1403470cookie-checkJavaScript-Variable = null setzen oder undefiniert lassen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy