Heim >Web-Frontend >js-Tutorial >Warum gibt „typeof null' in JavaScript „Objekt' zurück?

Warum gibt „typeof null' in JavaScript „Objekt' zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 22:38:09784Durchsuche

Why Does `typeof null` Return

Warum gibt typeof Null „Object“ zurück, obwohl es kein primitiver Typ ist?

Beim Lesen von „Professionelles Javascript für Webentwickler“ haben Sie stoßen auf eine Verwirrung: Das Kapitel besagt, dass Grundelemente null enthalten, typeof(null) jedoch „Objekt“ ergibt. Da Primitive typischerweise als Wert und Objekte als Referenz übergeben werden, widerspricht dies scheinbar der primitiven Natur von Null.

Historische Wurzel der Typmanipulation

Eintauchen in die Annalen von JavaScript, wir Entdecken Sie, dass diese Anomalie auf die anfängliche Implementierung der Sprache zurückzuführen ist. In den Anfängen von JavaScript wurden Werte durch ein Typ-Tag und einen Wert gekennzeichnet. Objekte hatten ein Typ-Tag von 0. Null, dargestellt durch den NULL-Zeiger (0x00), wurde versehentlich ein Typ-Tag von 0 zugewiesen.

Remains of the Past

Diese versehentliche Zuordnung von null mit dem Typ-Tag „object“ führte zu dem fehlerhaften Ergebnis „typeof(null)“. Trotz späterer Aktualisierungen und Weiterentwicklungen der Sprache blieb dieses Verhalten bestehen und wurde durch Bedenken hinsichtlich einer Störung des vorhandenen Codes behindert.

Fix vorgeschlagen, aber abgelehnt

Es wurden Anstrengungen unternommen, um dieses Problem zu beheben indem ein optionaler Fix in ECMAScript vorgeschlagen wird, der typeof(null) als „null“ zurückgeben soll. Der Vorschlag stieß jedoch auf Ablehnung. Seine Implementierung hätte zu einer erheblichen Änderung geführt und möglicherweise den Legacy-Code beschädigt, der auf dem vorhandenen Verhalten beruhte.

Aktuelle Situation

Folglich bleibt die besondere Art des (Null-)Verhaltens bestehen eingebettet in die Struktur von JavaScript. Die Typmanipulation in JavaScript ist nach wie vor ein nuancierter und historisch beeinflusster Aspekt der Sprache, was durch diese dauerhafte Eigenart veranschaulicht wird.

Das obige ist der detaillierte Inhalt vonWarum gibt „typeof null' in JavaScript „Objekt' zurück?. 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