Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung des Verständnisses von undefiniert und null in JavaScript

Detaillierte Erläuterung des Verständnisses von undefiniert und null in JavaScript

亚连
亚连Original
2018-05-19 16:37:171854Durchsuche

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!

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