Heim > Artikel > Web-Frontend > Detaillierte Erläuterung des Verständnisses von undefiniert und null in JavaScript
Jetzt werde ich Ihnen ein umfassendes Verständnis des JavaScript-Typsystems vermitteln – undefiniert und null. Lassen Sie mich es jetzt mit Ihnen teilen und es allen als Referenz geben.
In den vorherigen Worten
Allgemeine Programmiersprachen drücken nur Null aus, aber Brendan Eich, der Designer von JavaScript, hat ein Undefiniertes entworfen. Dies erhöht zweifellos die Komplexität des Programms, aber dafür gibt es bestimmte Gründe. In diesem Artikel werden undefiniert und null in JavaScript ausführlich vorgestellt
Historische Gründe: Als JavaScript 1995 geboren wurde, wurde zunächst wie Java nur null als Wert festgelegt, der „none“ darstellt. Gemäß der Tradition der C-Sprache ist null so konzipiert, dass es automatisch in 0 konvertiert wird
JavaScript-Designer Brendan Eich ist jedoch der Meinung, dass dies aus zwei Gründen nicht ausreicht. Erstens wird null wie in Java als Objekt behandelt. Allerdings werden JavaScript-Werte in zwei Kategorien unterteilt: primitive Typen und Objekttypen. Brendan Eich ist der Meinung, dass der Wert, der „none“ darstellt, am besten kein Objekt ist. Zweitens enthielt die ursprüngliche Version von JavaScript keinen Fehlerbehandlungsmechanismus. Wenn eine Datentypinkongruenz auftritt, wird der Typ häufig automatisch konvertiert oder schlägt stillschweigend fehl. Brendan Eich war der Meinung, dass es schwierig sein würde, Fehler zu finden, wenn null automatisch in 0 konvertiert würde.
Deshalb entwarf Brendan Eich ein weiteres Undefiniertes. Er unterscheidet es wie folgt: null ist ein Objekt, das „none“ darstellt und 0 ist, wenn es in einen numerischen Wert umgewandelt wird; undefiniert ist ein primitiver Wert, der „none“ darstellt und NaN
ist, wenn es in einen numerischen Wert umgewandelt wird . Derzeit jedoch null Sie sind im Grunde gleichbedeutend mit undefiniert, beide sind primitive Typen und es gibt nur einige subtile Unterschiede
undefiniertDer Typ Undefiniert hat nur einen Wert, der undefiniert ist. Wenn eine deklarierte Variable nicht initialisiert ist, ist der Standardwert der Variablen undefiniert. Im Allgemeinen bedeutet „undefiniert“, dass die Variable nicht initialisiert wurde.
var test;//undefined console.log(test == undefined);//true var test = undefined;//undefined
Für eine Variable, die noch nicht deklariert wurde, kann nur eine Operation ausgeführt werden. Verwenden Sie den Operator „typeof“, um den Datentyp zu ermitteln Modus führt zu einem Fehler
typeof(test);//undefined
【Auftrittsszene】
【1】Eine nicht zugewiesene Variable wurde deklariert
【2】Getting nicht vorhandene Attribute des Objekts
【3】Das Ausführungsergebnis einer Funktion ohne Rückgabewert
【4】Die Parameter der Funktion werden nicht übergeben
【 5】void(expression)
var i; console.log(i);//undefined var o = {}; console.log(o.p);//undefined function f(){}; console.log(f());//undefined function f(x){return x;} console.log(f());//undefined console.log(void(0));//undefined
[Typkonvertierung]
Boolean(undefined): false Number(undefined): NaN String(undefined): 'undefined'
null
The Der Nulltyp hat nur einen Wert, nämlich null. null ist ein Schlüsselwort in der JavaScript-Sprache, das einen speziellen Wert darstellt und häufig zur Beschreibung von „Nullwert“ verwendet wird
Aus logischer Sicht stellt der Nullwert einen Nullobjektzeiger dar
[Hinweis ] null ist ein leerer Objektzeiger, während [] ein leeres Array ist, {} ein leeres Objekt ist, die drei sind unterschiedlich
console.log(typeof null);//'object'
Obwohl null und undefiniert unterschiedlich sind, repräsentieren sie beide „Wertfreiraum“ und null steht für „leerer Wert“, undefiniert bedeutet „undefiniert“. Die beiden sind oft austauschbar. Der Gleichheitsoperator == betrachtet die beiden als gleich
console.log(null == undefined);//true
Da undefiniert und null keine Konstruktortypen sind, verfügen sie über keine Eigenschaften und Methoden, um auf diese beiden Werte zuzugreifen Mitglied oder Methode erzeugt einen Typfehler
[Typkonvertierung]
Boolean(null): false Number(null): 0 String(null): 'null'
Das Obige habe ich für alle zusammengestellt. Ich hoffe, es wird für alle hilfreich sein Zukunft.
Verwandte Artikel:
Javascript-Funktionsausdruck (Bild- und Text-Tutorial)
Javascript-Vererbungsmechanismus (ausführliche Antwort, Bild Text-Tutorial)
Javascript-Erstellung von Klassen und Objekten (grafisches Tutorial)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Verständnisses von undefiniert und null in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!