JavaScript-Datentypen: Grundtypen und Referenztypwerte_Grundkenntnisse
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:
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.
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:
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:
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:
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:
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:
Ergebnis = Variable Instanz des Konstruktors
Wenn die Variable eine Instanz des angegebenen Referenztyps ist, gibt der Operator „instanceof“ „true“ zurück:
Alert(Person-Instanz des Objekts);

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten


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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)