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
KennyC
Im Allgemeinen verwende ich null für Werte, von denen ich weiß, dass sie einen „null“-Zustand haben können; zum Beispiel
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.
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.
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.
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.
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
14034700cookie-checkJavaScript-Variable = null setzen oder undefiniert lassen?yes
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 sindnull
Anstatt vonundefined
.– Michael Geary
10. Mai 2013 um 3:47 Uhr
Eigentlich,
var a, b;
vielleicht nicht immer Lass esundefined
. In früheren IE-Versionen müssten Sie diesen Codeabschnitt ändern invar 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 hatif (a && b)
, zum Beispiel). In diesem Fall weicht eine nicht gesetzte Variable abundefined
.– 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