Erläutern Sie den Unterschied zwischen undefiniert und null
In diesem Artikel geht es um den Unterschied zwischen undefiniert und null. Wenn Sie den Unterschied zwischen undefiniert und null nicht kennen, schauen wir uns diesen Artikel an . Okay, lassen Sie uns den Unsinn hinter uns lassen und auf den Punkt kommen
Die meisten Computersprachen haben einen und nur einen Wert, der „none“ darstellt, zum Beispiel NULL in der C-Sprache . und in der Java-Sprache null, „None“ in der Python-Sprache und „nil“ in der Ruby-Sprache.
Etwas seltsamerweise hat die JavaScript-Sprache tatsächlich zwei Werte, die „none“ darstellen: undefiniert und null. Warum ist das so?
1. Ähnlichkeit
In JavaScript eine Variable zu undefiniert oder null zuweisen, Um ehrlich zu sein, gibt es fast keinen Unterschied.
var a = undefined; var a = null;
Im obigen Code wird die Variable a undefiniert bzw. null zugewiesen. Die beiden Schreibmethoden sind nahezu gleichwertig.
undefiniert und null werden in der if-Anweisung automatisch in „falsch“ konvertiert, und der Gleichheitsoperator meldet sogar direkt, dass sie gleich sind.
if (!undefined) console.log('undefined is false'); // undefined is false if (!null) console.log('null is false'); // null is false undefined == null // true
Der obige Code zeigt, wie ähnlich die Verhaltensweisen der beiden sind!
Da die Bedeutungen und Verwendungen von undefiniert und null ähnlich sind, warum erhöht dies nicht ohne Grund die Komplexität von JavaScript und bereitet Anfängern Probleme? Die Dart-Sprache, ein Ersatz für die von Google entwickelte JavaScript-Sprache, schreibt eindeutig vor, dass es nur Null und kein Undefiniertes gibt!
2. Historische Gründe
Als ich kürzlich das neue Buch „Speaking JavaScript“ las, entdeckte ich zufällig die Antwort zu dieser Frage!
Es stellte sich heraus, dass dies mit der Geschichte von JavaScript zusammenhängt. Als JavaScript im Jahr 1995 geboren wurde, wurde zunächst wie Java nur Null als Wert für „Nichts“ festgelegt.
Gemäß der Tradition der C-Sprache ist null so konzipiert, dass es automatisch in 0 konvertiert wird.
Number(null) // 0 5 + null // 5
Brendan Eich, der Designer von JavaScript, ist jedoch der Meinung, dass dies aus zwei Gründen nicht ausreicht.
Zunächst einmal wird null wie in Java als Objekt behandelt. Der -Datentyp von JavaScript ist jedoch in zwei Kategorien unterteilt: primitiver Typ (primitiv) und synthetischer Typ (komplex). 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 Mechanismus zur Fehlerbehandlung. Wenn ein Datentypkonflikt auftritt, wird der Typ häufig automatisch konvertiert oder schlägt stillschweigend fehl. Brendan Eich ist der Meinung, dass es schwierig sein wird, Fehler zu finden, wenn null automatisch in 0 konvertiert wird.
Deshalb hat Brendan Eich ein weiteres Undefiniertes entworfen.
3. Ursprüngliches Design
Die ursprüngliche Version von JavaScript unterscheidet sich wie folgt: null ist ein Objekt, das „none“ darstellt. Bei der Konvertierung in einen numerischen Wert ist er 0; undefiniert ist ein primitiver Wert, der „keine“ darstellt, und bei der Konvertierung in einen numerischen Wert ist er NaN.
Number(undefined) // NaN 5 + undefined // NaN
4. Heutige Verwendung
In der Praxis hat sich die obige Unterscheidung jedoch schnell als nicht umsetzbar erwiesen. Derzeit sind null und undefiniert grundsätzlich synonym, mit nur einigen subtilen Unterschieden.
null bedeutet „kein Objekt“, das heißt, dort sollte kein Wert vorhanden sein. Typische Verwendung ist:
(1) Als Parameter der Funktion bedeutet dies, dass der Parameter der Funktion kein Objekt ist.
(2) dient als Endpunkt der Objektprototypkette.
Object.getPrototypeOf(Object.prototype)// null
undefiniert bedeutet „fehlender Wert“, das heißt, hier sollte ein Wert vorhanden sein, dieser wurde jedoch noch nicht definiert. Typische Verwendung ist:
(1) Wenn eine Variable deklariert, aber kein Wert zugewiesen wird, ist sie gleich undefiniert.
(2) Beim Aufruf der Funktion wird der Parameter, der bereitgestellt werden soll, nicht angegeben und der Parameter ist gleich undefiniert.
(3) Dem Objekt ist kein Attribut zugewiesen und der Wert dieses Attributs ist undefiniert.
(4) Wenn die Funktion keinen Wert zurückgibt, gibt sie standardmäßig undefiniert zurück.
var i; i // undefined function f(x){console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined
Das Obige ist der gesamte Inhalt dieses Artikels. Wenn Sie nicht viel darüber wissen, können Sie beide Seiten problemlos selbst meistern!
Verwandte Empfehlungen:
Javascript verstehen_02_Undefinierte und null_Javascript-Fähigkeiten verstehen
Das obige ist der detaillierte Inhalt vonErläutern Sie den Unterschied zwischen undefiniert und null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

H5. Der Hauptunterschied zwischen Mini -Programmen und App ist: Technische Architektur: H5 basiert auf Web -Technologie, und Mini -Programme und Apps sind unabhängige Anwendungen. Erfahrung und Funktionen: H5 ist leicht und einfach zu bedienen, mit begrenzten Funktionen; Mini -Programme sind leicht und haben eine gute Interaktivität. Apps sind leistungsstark und haben reibungslose Erfahrung. Kompatibilität: H5 ist plattformübergreifend, Applets und Apps werden von der Plattform eingeschränkt. Entwicklungskosten: H5 verfügt über niedrige Entwicklungskosten, mittlere Mini -Programme und die höchste App. Anwendbare Szenarien: H5 eignet sich für Informationsanzeigen, Applets eignen sich für leichte Anwendungen und Apps eignen sich für komplexe Funktionen.

C -Sprachfunktionen sind wiederverwendbare Codeblöcke. Sie erhalten Input, führen Vorgänge und Rückgabergebnisse aus, die modular die Wiederverwendbarkeit verbessert und die Komplexität verringert. Der interne Mechanismus der Funktion umfasst Parameterübergabe-, Funktionsausführung und Rückgabeteile. Der gesamte Prozess beinhaltet eine Optimierung wie die Funktion inline. Eine gute Funktion wird nach dem Prinzip der einzigen Verantwortung, der geringen Anzahl von Parametern, den Benennungsspezifikationen und der Fehlerbehandlung geschrieben. Zeiger in Kombination mit Funktionen können leistungsstärkere Funktionen erzielen, z. B. die Änderung der externen Variablenwerte. Funktionszeiger übergeben Funktionen als Parameter oder speichern Adressen und werden verwendet, um dynamische Aufrufe zu Funktionen zu implementieren. Das Verständnis von Funktionsmerkmalen und Techniken ist der Schlüssel zum Schreiben effizienter, wartbarer und leicht verständlicher C -Programme.

PDF mit Passwort geschützt in Photoshop exportieren: Öffnen Sie die Bilddatei. Klicken Sie auf "Datei" & gt; "Export" & gt; "Exportieren Sie als PDF". Stellen Sie die Option "Sicherheit" fest und geben Sie dasselbe Passwort zweimal ein. Klicken Sie auf "Exportieren", um eine PDF -Datei zu generieren.

Obwohl C und C# Ähnlichkeiten haben, sind sie völlig unterschiedlich: C ist eine prozessorientierte, manuelle Speicherverwaltung und plattformabhängige Sprache, die für die Systemprogrammierung verwendet wird. C# ist eine objektorientierte, Müllsammlung und plattformunabhängige Sprache, die für Desktop-, Webanwendungs- und Spielentwicklung verwendet wird.

Die Notwendigkeit der Registrierung von Vuerouter in der Datei index.js -Datei im Ordner Router Bei der Entwicklung von VUE -Anwendungen stoßen Sie häufig Probleme mit der Routing -Konfiguration. Besonders...

Detaillierte Erläuterung der XPath -Suchmethode unter DOM -Knoten in JavaScript, wir müssen häufig bestimmte Knoten aus dem DOM -Baum basierend auf XPath -Ausdrücken finden. Wenn Sie ...

Eingehende Diskussion der Unterschiede in der Konsole.log-Ausgabe in diesem Artikel wird die Gründe analysieren, warum die Ausgabeergebnisse der Konsolenfunktion in einem Code-Stück unterschiedlich sind. Code -Snippets beinhalten URL -Parameterauflösung ...
