Detaillierte Erläuterung der primitiven Werte und Referenzwerte in ECMAScript

Detaillierte Erläuterung der primitiven Werte und Referenzwerte in ECMAScript

Vorwort

Dies sollte ein sehr grundlegender Wissenspunkt zu JavaScript sein, aber ich schätze, viele Freunde haben es nur kurz erwähnt und wissen während des Interviews nichts darüber. Hier werde ich in Kombination mit meinen vorherigen Anmerkungen kurz das relevante Wissen über primitive Werte und Referenzwerte vorstellen. Lasst uns anfangen.

ECMAScript legt fest, dass Variablen zwei Datentypen enthalten können, entweder primitive Werte oder Referenzwerte. Primitive Werte sind die einfachsten Datenstrukturen, während Referenzwerte Objekte sind, die aus mehreren Werten bestehen.

Insgesamt gibt es sechs primitive Werte: Undefiniert, Null, Boolesch, Zahl, Zeichenfolge und Symbol. Das Bedienen des primitiven Werts bedeutet das Bedienen des tatsächlichen Werts in der Speichervariablen.

Der Referenzwert ist ein im Speicher abgelegtes Objekt. Da JavaScript nicht direkt auf den Speicherort zugreifen kann, kann es nicht direkt auf den Speicherplatz zugreifen, in dem sich das Objekt befindet. Wenn Sie auf ein Objekt zugreifen, bearbeiten Sie tatsächlich die Referenz des Objekts und nicht das Objekt selbst.

Was sind dynamische Eigenschaften?

Dynamische Eigenschaften bedeuten, dass nach der Erstellung eines Referenzwerts dessen Eigenschaften und Methoden dynamisch hinzugefügt, geändert und gelöscht werden können. Beispiel:

let obj = neues Objekt();
Objektname = "Sam";

konsole.log(Objektname); // "Sam"

Erläuterung: Zunächst wird ein Referenzwertobjekt erstellt und in der Variable obj gespeichert. Anschließend wird obj ein Namensattribut mit dem Wert „Sam“ zugewiesen. Sofern diese Eigenschaft nicht geändert/gelöscht ist, können Sie sie ausdrucken oder direkt darauf zugreifen.

Primitive Werte können keine Attribute haben, obwohl kein Fehler gemeldet wird, wenn Attributoperationen an ihnen ausgeführt werden. Beispiel:

lass mich = "Sam";
ich.geschlecht = "männlich";

console.log(me.sex); // undefiniert

Hier wird eine wörtliche Initialisierung verwendet. Selbst wenn mir also das Geschlechtsattribut zugewiesen wird, ist es nutzlos und auf das Attribut kann nicht zugegriffen werden.
Wenn Sie einen primitiven Wert mit dem neuen Schlüsselwort initialisieren, erstellt JavaScript eine Objektinstanz. Beispiel:

lass mich = neuer String("Sam");
ich.geschlecht = "männlich";

console.log(me.sex); // "männlich"

Kopieren von Werten

Primitive Werte und Referenzwerte unterscheiden sich auch beim Kopieren über Variablen. Primitive Werte werden in eine neue Variable kopiert, während Referenzwerte tatsächlich den Zeiger auf den Wert kopieren. Beispiel:

lass name = "Sam";
lass meinName = Name;

console.log(meinName); // "Sam"

Wenn myName auf name initialisiert wird, wird auch „Sam“ in myName kopiert. Dies ist unabhängig von name und stört sich nicht gegenseitig. Man kann verstehen, dass myName eine Kopie von name ist.

Das Kopieren des Referenzwerts kopiert tatsächlich einen Zeiger, der auf das Objekt im Heap-Speicher zeigt. Die Attributoperation auf der kopierten Variable ist tatsächlich die Operation auf dem kopierten Objekt. Die beiden Variablen verweisen tatsächlich auf dasselbe Objekt. Beispiel:

lass mich = neues Objekt();
lass dich = mich;

ich.name = "Sam";

console.log(Ihr Name); // "Sam"

Wertetyp bestimmen

Wir verwenden häufig typeof, um den Typ einer Variablen zu bestimmen. Dies ist nützlich, um den Typ primitiver Werte zu bestimmen. Für die Bestimmung von Referenzwerten ist es jedoch nicht sehr nützlich, da typeof für Referenzwerte und Null ein Objekt zurückgibt.

Normalerweise müssen wir genau wissen, um welche Art von Objekt es sich handelt, daher verfügen wir über den Operator „instanceof“. Die Syntax lautet:

Ergebnis = Variable Instanz des Konstruktors

instanceof gibt einen booleschen Wert zurück. Beispiel:

console.log(Personeninstanz des Objekts);  
// Ist die Variable Person ein Objekt?

console.log(Farben-Instanz des Arrays);   
// Ist die Variable colors ein Array?

console.log(Musterinstanz von RegExp); 
// Ist das variable Muster ein regulärer Ausdruck?

Wenn Sie instanceof auf einen primitiven Wert anwenden, wird immer false zurückgegeben, da primitive Werte keine Objekte sind.

Zusammenfassen

Dies ist das Ende dieses Artikels über Originalwerte und Referenzwerte in ECMAScript. Weitere Informationen zu Originalwerten und Referenzwerten in ECMAScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Linux-Unlink-Funktion und wie man Dateien löscht

>>:  Detaillierte Erläuterung des Befehls zum Bereinigen des MySQL-Datenbank-Binlogs

Artikel empfehlen

Pessimistisches Sperren und optimistisches Sperren in MySQL

In relationalen Datenbanken sind pessimistisches ...

So verwenden Sie CURRENT_TIMESTAMP in MySQL

Inhaltsverzeichnis Verwendung von CURRENT_TIMESTA...

CentOS 7 Installations- und Konfigurations-Tutorial unter VMware10

Während Ubuntu heute das beliebteste Linux-Betrie...

Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

1. Pfeilfunktion 1. Nutzen Sie die Tatsache, dass...

Analyse und Lösung zur Leistungsoptimierung von Vue.js-Anwendungen

Inhaltsverzeichnis 1. Einleitung 2. Warum brauche...

MySQL-Abfrage redundanter Indizes und ungenutzter Indexoperationen

MySQL 5.7 und höhere Versionen ermöglichen die di...

So komprimieren Sie Bilder effektiv mit JS

Inhaltsverzeichnis Vorwort Konvertierungsbeziehun...

Implementierung der Multi-Environment-Konfiguration (.env) des Vue-Projekts

Inhaltsverzeichnis Was ist eine Multiumgebungskon...

Beispielanalyse des Prinzips und der Lösung des MySQL-Gleitreihenfolgeproblems

Dieser Artikel erläutert anhand von Beispielen da...