Heim Web-Frontend js-Tutorial JavaScript-Datentypen: Grundtypen und Referenztypwerte_Grundkenntnisse

JavaScript-Datentypen: Grundtypen und Referenztypwerte_Grundkenntnisse

May 16, 2016 pm 04:06 PM
javascript 基本类型 引用类型 数据类型

ECMAScript-Variablen enthalten Werte von zwei verschiedenen Datentypen: Basistypwerte und Referenztypwerte. Primitive Typwerte sind einfache Datenelemente, während Referenztypwerte Objekte sind, die aus mehreren Werten bestehen können.

Beim Zuweisen eines Werts zu einer Variablen muss der Parser feststellen, ob der Wert ein primitiver Typ oder ein Referenztyp ist. Zu den Grundtypen gehören „Undefiniert“, „Null“, „Boolesch“, „Zahl“ und „String“. Auf diese fünf Grunddatentypen wird über den Wert zugegriffen, sodass der tatsächliche Wert, der in der Variablen gespeichert ist, im Speicher gespeichert werden kann. Im Gegensatz zu anderen Sprachen erlaubt JavaScript keinen direkten Zugriff auf Speicherorte, was bedeutet, dass der Speicherplatz eines Objekts nicht direkt manipuliert werden kann. Wenn Sie ein Objekt bearbeiten, bearbeiten Sie tatsächlich eine Referenz auf das Objekt und nicht das eigentliche Objekt, sodass auf den Wert eines Referenztyps per Referenz zugegriffen wird.

1. Dynamische Attribute
Die Methoden zum Definieren von Basistypen und Referenztypen sind sehr ähnlich. Für Referenztypwerte können wir ihnen Eigenschaften und Methoden hinzufügen und ihre Eigenschaften und Methoden auch wie folgt ändern und löschen:

Code kopieren Der Code lautet wie folgt:

var person = new Object();
person.name = "zxj";
warning(person.name); //"zxj" 

2. Variablenwert kopieren

Wenn Sie einen Wert eines Basistyps von einer Variablen in eine andere kopieren, wird ein neuer Wert auf dem Variablenobjekt erstellt und dann an den für die neue Variable zugewiesenen Speicherort kopiert.

Code kopieren Der Code lautet wie folgt:

var num1 = 5;
var num2 = num1; //5

Wenn ein Referenztypwert von einer Variablen in eine andere kopiert wird, wird auch eine Kopie des im Variablenobjekt gespeicherten Werts in den für die neue Variable zugewiesenen Speicherplatz kopiert. Der Unterschied besteht darin, dass dieser Wert tatsächlich ein Zeiger auf ein im Heap gespeichertes Objekt ist. Nach Abschluss des Kopiervorgangs verweisen beide Variablen tatsächlich auf dasselbe Objekt. Daher wirkt sich die Änderung einer der Variablen auf die andere Variable aus, wie unten gezeigt:

Code kopieren Der Code lautet wie folgt:

var obj1 = neues Objekt();
var obj2 = obj1;
obj1.name = "zxj";
Alert(obj2.name); //"zxj"

3. Parameter übergeben

Die Parameter aller Funktionen in ESMAScript werden als Wert übergeben. Mit anderen Worten: Das Kopieren des Werts außerhalb der Funktion in den Parameter innerhalb der Funktion ist dasselbe wie das Kopieren des Werts von einer Variablen in eine andere. Primitive Typwerte werden genauso übergeben wie primitive Typvariablen kopiert werden. Die Übertragung von Referenztypwerten erfolgt auf die gleiche Weise wie das Kopieren von Referenztypvariablen. Viele Entwickler sind an dieser Stelle möglicherweise verwirrt, da es zwei Möglichkeiten gibt, auf Variablen zuzugreifen: über den Wert und über die Referenz, während Parameter nur über den Wert übergeben werden können.

Beim Übergeben eines Basistypwerts an einen Parameter wird der übergebene Wert in eine lokale Variable (benannter Parameter) kopiert. Wie im folgenden Code gezeigt:

Code kopieren Der Code lautet wie folgt:

Funktion addTen(num) {
num = 10;
Rückgabenummer;
}
var count = 20;
var result = addTen(count);
alarm(count); // 20, keine Änderung
alarm(result); // 30

Parameter sind eigentlich lokale Variablen der Funktion. Der Parameter num und die Variable count kennen sich nicht, sie haben lediglich den gleichen Wert. Wenn num als Referenz übergeben wird, beträgt der Wert der Variablen count ebenfalls 30, was die Änderungen innerhalb der Funktion widerspiegelt.

Bei der Übergabe eines Referenztypwerts an einen Parameter wird die Adresse des Werts im Speicher in eine lokale Variable kopiert, sodass Änderungen in dieser lokalen Variablen außerhalb der Funktion widergespiegelt werden. Hier verwenden wir Referenztypen, um einen Blick darauf zu werfen:

Code kopieren Der Code lautet wie folgt:

Funktion setName(obj) {
Obj.name = "zxj";
}
var person = new Object();
setName(person);
alarm(person.name); //"zxj"

Innerhalb dieser Funktion beziehen sich obj und person auf dasselbe Objekt. Mit anderen Worten: Auch wenn das Objekt als Wert übergeben wird, greift obj per Referenz auf dasselbe Objekt zu. Wenn daher das Namensattribut zu obj innerhalb der Funktion hinzugefügt wird, wird auch die Person außerhalb der Funktion reflektiert, da es im Heapspeicher nur ein Objekt gibt, auf das die Person zeigt, und es sich um ein globales Objekt handelt. Viele Entwickler glauben fälschlicherweise, dass im lokalen Bereich geänderte Objekte im globalen Bereich widergespiegelt werden, was bedeutet, dass Parameter als Referenz übergeben werden. Um zu beweisen, dass Objekte als Wert übergeben werden, schauen wir uns das folgende modifizierte Beispiel an:

Code kopieren Der Code lautet wie folgt:

Funktion setName(obj) {
Obj.name = "zxj";
Obj = neues Objekt();
Obj.name = "sdf";
}
var person = new Object();
setName(person);
alarm(person.name);

Wie aus dem obigen Beispiel ersichtlich ist, wird die Person automatisch so geändert, dass sie auf ein neues Objekt verweist, dessen Namensattributwert „sdf“ ist, wenn „person“ als Referenz übergeben wird. Beim nächsten Zugriff auf person.name wird jedoch immer noch „zxj“ angezeigt. Dies zeigt, dass die ursprüngliche Referenz unverändert bleibt, selbst wenn der Wert des Parameters innerhalb der Funktion geändert wird. Wenn obj innerhalb einer Funktion überschrieben wird, verweist diese Variable tatsächlich auf ein lokales Objekt. Dieses lokale Objekt wird sofort zerstört, wenn die Ausführung der Funktion abgeschlossen ist.

Stellen Sie sich die Parameter von ECMAScript-Funktionen als lokale Variablen vor.

4. Erkennungstyp

Obwohl typeof ein leistungsstarker Assistent beim Erkennen grundlegender Datentypen ist, ist dieser Operator beim Erkennen von Referenztypen nicht sehr nützlich. Normalerweise wollen wir nicht wissen, ob ein Wert ein Objekt ist, sondern um welche Art von Objekt es sich handelt. ECMAScript stellt zu diesem Zweck den Instanzenoperator bereit, dessen Syntax wie folgt lautet:

Code kopieren Der Code lautet wie folgt:

Ergebnis = Variable Instanz des Konstruktors

Wenn die Variable eine Instanz des angegebenen Referenztyps ist, gibt der Operator „instanceof“ „true“ zurück:
Code kopieren Der Code lautet wie folgt:

Alert(Person-Instanz des Objekts);
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welcher Datentyp sollte für das Geschlechtsfeld in der MySQL-Datenbank verwendet werden? Welcher Datentyp sollte für das Geschlechtsfeld in der MySQL-Datenbank verwendet werden? Mar 14, 2024 pm 01:21 PM

In einer MySQL-Datenbank können Geschlechtsfelder normalerweise im ENUM-Typ gespeichert werden. ENUM ist ein Aufzählungstyp, der es uns ermöglicht, aus einer Menge vordefinierter Werte einen als Wert eines Feldes auszuwählen. ENUM ist eine gute Wahl, wenn eine feste und begrenzte Option wie das Geschlecht dargestellt wird. Schauen wir uns ein konkretes Codebeispiel an: Angenommen, wir haben eine Tabelle namens „users“, die Benutzerinformationen, einschließlich Geschlecht, enthält. Jetzt wollen wir ein Feld für das Geschlecht erstellen, wir können die Tabellenstruktur so gestalten: CRE

Wie gehen generische Funktionen mit Zeigern und Referenztypen in Golang um? Wie gehen generische Funktionen mit Zeigern und Referenztypen in Golang um? Apr 16, 2024 pm 04:06 PM

Wenn eine generische Funktion Zeigertypen in Go verarbeitet, erhält sie einen Verweis auf die ursprüngliche Variable, sodass der Variablenwert geändert werden kann. Referenztypen werden bei der Übergabe kopiert, sodass die Funktion den ursprünglichen Variablenwert nicht ändern kann. Zu den praktischen Beispielen gehört die Verwendung generischer Funktionen zum Vergleichen von Zeichenfolgen oder Zahlensegmenten.

Was ist der beste Datentyp für Geschlechtsfelder in MySQL? Was ist der beste Datentyp für Geschlechtsfelder in MySQL? Mar 15, 2024 am 10:24 AM

In MySQL ist der ENUM-Aufzählungstyp der am besten geeignete Datentyp für Geschlechtsfelder. Der Enumerationstyp ENUM ist ein Datentyp, der die Definition einer Menge möglicher Werte ermöglicht. Das Geschlechtsfeld eignet sich für die Verwendung des ENUM-Typs, da das Geschlecht normalerweise nur zwei Werte hat, nämlich männlich und weiblich. Als Nächstes werde ich anhand spezifischer Codebeispiele zeigen, wie man in MySQL ein Geschlechtsfeld erstellt und den Aufzählungstyp ENUM zum Speichern von Geschlechtsinformationen verwendet. Im Folgenden sind die Schritte aufgeführt: Erstellen Sie zunächst eine Tabelle mit dem Namen „users“ in MySQL, einschließlich

Mindmap der Python-Syntax: Vertiefendes Verständnis der Codestruktur Mindmap der Python-Syntax: Vertiefendes Verständnis der Codestruktur Feb 21, 2024 am 09:00 AM

Python wird aufgrund seiner einfachen und leicht lesbaren Syntax in einer Vielzahl von Bereichen häufig verwendet. Es ist von entscheidender Bedeutung, die Grundstruktur der Python-Syntax zu beherrschen, um sowohl die Programmiereffizienz zu verbessern als auch ein tiefes Verständnis für die Funktionsweise des Codes zu erlangen. Zu diesem Zweck bietet dieser Artikel eine umfassende Mindmap, die verschiedene Aspekte der Python-Syntax detailliert beschreibt. Variablen und Datentypen Variablen sind Container, die zum Speichern von Daten in Python verwendet werden. Die Mindmap zeigt gängige Python-Datentypen, einschließlich Ganzzahlen, Gleitkommazahlen, Zeichenfolgen, boolesche Werte und Listen. Jeder Datentyp hat seine eigenen Eigenschaften und Betriebsmethoden. Operatoren Operatoren werden verwendet, um verschiedene Operationen an Datentypen auszuführen. Die Mindmap deckt die verschiedenen Operatortypen in Python ab, z. B. arithmetische Operatoren und Verhältnisse

Was ist ein MD5-Hashwert? Was ist ein MD5-Hashwert? Feb 18, 2024 pm 08:50 PM

Was ist der MD5-Wert? In der Informatik ist MD5 (MessageDigestAlgorithm5) eine häufig verwendete Hash-Funktion zum Verdauen oder Verschlüsseln von Nachrichten. Es erzeugt eine 128-Bit-Binärzahl fester Länge, die normalerweise im 32-Bit-Hexadezimalformat dargestellt wird. Der MD5-Algorithmus wurde 1991 von Ronald Rivest entwickelt. Obwohl der MD5-Algorithmus im Bereich der Kryptographie als nicht mehr sicher gilt, wird er immer noch häufig zur Datenintegritätsprüfung und Dateiprüfung eingesetzt.

Was ist die beste Datentypauswahl für das Geschlechtsfeld in MySQL? Was ist die beste Datentypauswahl für das Geschlechtsfeld in MySQL? Mar 14, 2024 pm 01:24 PM

Beim Entwerfen von Datenbanktabellen ist die Auswahl des geeigneten Datentyps für die Leistungsoptimierung und Datenspeichereffizienz sehr wichtig. In der MySQL-Datenbank gibt es eigentlich keine sogenannte beste Wahl für den Datentyp zum Speichern des Geschlechtsfelds, da das Geschlechtsfeld im Allgemeinen nur zwei Werte hat: männlich oder weiblich. Aus Gründen der Effizienz und Platzersparnis können wir jedoch einen geeigneten Datentyp zum Speichern des Geschlechtsfelds auswählen. In MySQL ist der Aufzählungstyp der am häufigsten verwendete Datentyp zum Speichern von Geschlechtsfeldern. Ein Aufzählungstyp ist ein Datentyp, der den Wert eines Felds auf einen begrenzten Satz beschränken kann.

Ausführliche Erklärung zur Verwendung des booleschen Typs in MySQL Ausführliche Erklärung zur Verwendung des booleschen Typs in MySQL Mar 15, 2024 am 11:45 AM

Detaillierte Erläuterung der Verwendung boolescher Typen in MySQL MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem. In praktischen Anwendungen ist es häufig erforderlich, boolesche Typen zur Darstellung logischer wahrer und falscher Werte zu verwenden. In MySQL gibt es zwei Darstellungsmethoden vom booleschen Typ: TINYINT(1) und BOOL. In diesem Artikel wird die Verwendung boolescher Typen in MySQL ausführlich vorgestellt, einschließlich der Definition, Zuweisung, Abfrage und Änderung boolescher Typen, und anhand spezifischer Codebeispiele erläutert. 1. Der boolesche Typ ist in MySQL definiert und kann sein

Mar 18, 2024 pm 04:03 PM

Die C-Sprache ist eine weit verbreitete Computerprogrammiersprache, die effizient, flexibel und leistungsstark ist. Um die Programmiersprache C beherrschen zu können, müssen Sie zunächst die grundlegende Syntax und die Datentypen verstehen. In diesem Artikel werden die grundlegende Syntax und Datentypen der C-Sprache vorgestellt und Beispiele gegeben. 1. Grundlegende Syntax 1.1 Kommentare In der Sprache C können Kommentare zur Erläuterung des Codes verwendet werden, um das Verständnis und die Wartung zu erleichtern. Kommentare können in einzeilige Kommentare und mehrzeilige Kommentare unterteilt werden. //Dies ist ein einzeiliger Kommentar/*Dies ist ein mehrzeiliger Kommentar*/1.2 Schlüsselwort C-Sprache

See all articles