Heim >Web-Frontend >js-Tutorial >Analyse des Unterschieds zwischen Null und Undefiniert in JavaScript_Javascript-Kenntnissen

Analyse des Unterschieds zwischen Null und Undefiniert in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:52:111286Durchsuche

In JavaScript gibt es zwei primitive Typen: Null und Undefiniert. Diese beiden Typen verwirren JavaScript-Entwickler oft: Wann ist es Null und wann ist es Undefiniert?

Der Typ „Undefiniert“ hat nur einen Wert, der undefiniert ist. Wenn eine deklarierte Variable nicht initialisiert wurde, ist der Standardwert der Variablen undefiniert.

Der Null-Typ hat auch nur einen Wert, nämlich null. Null wird verwendet, um ein Objekt darzustellen, das noch nicht existiert. Es wird oft verwendet, um anzuzeigen, dass eine Funktion versucht, ein nicht existierendes Objekt zurückzugeben.

Code kopieren Der Code lautet wie folgt:

var oValue;
Alert(oValue == undefiniert); //Ausgabe „true“

Dieser Code wird als wahr angezeigt, was bedeutet, dass der Wert von oVlaue undefiniert ist, da wir ihn nicht initialisiert haben.

Code kopieren Der Code lautet wie folgt:

Alert(null == document.getElementById('notExistElement'));

Wenn der DOM-Knoten mit der ID „notExistElement“ auf der Seite nicht existiert, zeigt dieser Code „true“ an, weil wir versuchen, ein Objekt abzurufen, das nicht existiert.

Code kopieren Der Code lautet wie folgt:

Alert(typeof undefiniert); //Ausgabe „undefiniert“
Alert(typeof null); //Ausgabe „Objekt“

Die erste Codezeile ist leicht zu verstehen, der Typ undefiniert ist Undefiniert; die zweite Codezeile verwirrt die Leute. Warum ist der Typ null wieder Objekt? Tatsächlich handelte es sich dabei um einen Fehler bei der anfänglichen Implementierung von JavaScript, das später von ECMAScript übernommen wurde. Heute können wir erklären, dass null ein Platzhalter für ein nicht vorhandenes Objekt ist, aber wir müssen beim eigentlichen Codieren dennoch auf diese Funktion achten.

Code kopieren Der Code lautet wie folgt:

Alert(null == undefiniert); //Ausgabe „wahr“

ECMAScript betrachtet undefiniert als von null abgeleitet und definiert sie daher als gleich. Was sollten wir jedoch tun, wenn wir in manchen Fällen zwischen diesen beiden Werten unterscheiden müssen? Die folgenden zwei Methoden können verwendet werden.
Code kopieren Der Code lautet wie folgt:

Alert(null === undefiniert); //Ausgabe „false“
Alert(typeof null == typeof undefiniert); //Ausgabe „false“

Die Verwendung der Methode „typeof“ wurde bereits erwähnt. Die Typen von null und undefiniert sind unterschiedlich, daher wird „false“ ausgegeben. Und === stellt absolute Gleichheit dar, hier gibt null === undefiniert false aus.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn