In JavaScript gibt es 2 spezielle Werte, die das Fehlen von Informationen darstellen: Null und undefiniert. Ich persönlich denke, der Unterschied zwischen diesen beiden speziellen Werten kann aus der folgenden Perspektive verstanden werden:
1.Null stellt einen Container dar, der Informationen speichert (z. B. eine Variable, der zuvor einen Wert zugewiesen wurde), der Inhalt im Container ist jedoch leer.
2. undefined bedeutet, dass kein Container verwendet wird, um Informationen zu speichern.
Null in JavaScript unterscheidet sich in den meisten anderen Programmiersprachen nicht von Null. Es wird im Grunde genommen verwendet, um anzuzeigen, dass der Informationswert leer ist. Während des JavaScripts gibt der Ausdruck das in den folgende Situationen undefinierte Ergebnis zurück:
1. Eine Variable, der nie einen Wert zugewiesen wurde.
2. Zugriff auf den Eigenschaftswert, der in einem Objekt nicht vorhanden ist.
3.. Zugang zu Mitgliedern, die im Array nicht existieren.
4. Rufen Sie eine Funktion ohne Rückgabeanweisung auf.
5. Rufen Sie eine Funktion auf, deren Rückgabeerklärung leer ist ("Return;").
In der Tat ist und definierter wie Infinity und NAN eine globale Variable in JavaScript und kann sogar andere Werte in ECMascript zugewiesen werden. ECMASScript 5 korrigierte diesen Fehler und setzen die undefinierte Variable nur schreibgeschützt.
Für Vergleiche zwischen Null und Undefined kann der Kongruent -Operator === verwendet werden. Wenn der normale == Operator verwendet wird, entspricht Null undefined:
Die Codekopie lautet wie folgt:
console.log (null == undefiniert); // true
console.log (null === undefined); // false
Wenn Sie während des Programmiervorgangs einer Variablen einen Nullwert zuweisen müssen, wird NULL im Allgemeinen anstelle von undefiniert verwendet. Der Grund ist:
1. undefiniert wird im Allgemeinen ein Mangel an Informationen auf Systemebene und Fehlerberichterstattung.
2.Null wird allgemein als Programmierstufe angesehen und der Informationswert auf der logischen Betriebsebene ist leer.
Wenn am Programm die Typumwandlung beteiligt ist, sind die Ergebnisse von Null und undefiniert, wenn sie in den Zahlentyp konvertiert werden:
1. Das Ergebnis einer undefinierten Umwandlung zur Anzahl ist NAN.
2. Das Ergebnis der Konvertierung von Null in die Zahl beträgt 0.
Es ist erwähnenswert, dass das Ergebnis der Umwandlung einer leeren Zeichenfolge und eines leeren Arrays in eine Nummer ebenfalls 0 beträgt.
Was in JavaScript, die zwei Werte darstellen, die "no" darstellen, können Sie auf Ruan Yifengs Blog -Beitrag verweisen.
Experiment
Im folgenden experimentellen Code sind die Expressionsergebnisse undefiniert:
Die Codekopie lautet wie folgt:
var a;
console.log (a);
Funktion sample (x) {
this.x = x;
}
var s = new sample ();
console.log (SX)
console.log (s.notexistVariable);
var n = [2,3,4];
console.log (n [8]);
Funktionstest () {
// kein Rückgabewert für diese Funktion
}
console.log (test ());
Funktion test2 () {
zurückkehren;
}
console.log (test2 ());