


Detaillierte Erläuterung erweiterter Beispiele verschiedener Datentypen in es6
1. Erweiterung der Zeichenfolge
fügt der Zeichenfolge einen Iterator hinzu, der von for...of
includes durchlaufen werden kann , StartsWith und EndsWith geben beide boolesche Werte zurück und unterstützen den zweiten Parameter (die Startposition der Suche) EndsWith zielt auf die ersten n Zeichen ab, und die anderen beiden sind vom n-ten bis zum Ende
repeat gibt eine neue Zeichenfolge zurück und der Parameter ist die Anzahl der Wiederholungen (Dezimalzahlen werden abgerundet, negative Zahlen oder Infnity melden einen Fehler, 0 bis -1 entspricht 0 und die Zeichenfolge wird in konvertiert Zahlen)
padStart und padEnd werden am Kopf oder Ende vervollständigt. Der erste Parameter ist die Mindestlänge der Zeichenfolge und der zweite Parameter ist die zur Vervollständigung verwendete Zeichenfolge
- Vorlagenzeichenfolge `${...}`
- Number.isFinite prüft, ob ein Wert endlich ist. Gibt bei nicht numerischen Werten immer false zurück.
- Number.isNaN prüft, ob ein Wert NaN ist.
Die traditionelle Methode isFinite isNaN ruft zuerst Number() auf, um den nicht numerischen Wert in einen numerischen Wert umzuwandeln
- Number.parseInt(), Number.parseFloat() sind die gleichen wie die herkömmliche Methode, die Der Zweck besteht darin, die globale Methoden- und Sprachmodularität zu reduzieren
- Number.isInteger() bestimmt, ob es eine ganze Zahl ist
- Number.EPSILON ist eine Sehr kleine Konstante. Wenn der Fehler der Gleitkommaberechnung kleiner als dieser Wert ist, ist er in Ordnung
- Der genaue ganzzahlige Bereich von JS: -2^53~2^53 (beides ausgenommen). endet),
Number.MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
Number.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;
Number.isSafeInteger() wird verwendet, um zu bestimmen, ob eine ganze Zahl innerhalb fällt dieser Bereich; - Math.trunc() entfernt den Dezimalteil und gibt einen ganzzahligen Teil zurück;
Math.sign() bestimmt, ob eine ganze Zahl negativ oder 0 ist; Math.cbrt() berechnet die Kubikwurzel einer Zahl; es gibt auch einige logarithmische Methoden und trigonometrische Funktionsmethoden 2 * * 3 === 8, die sich von der Math.pow-Implementierung unterscheiden. die letzte Ziffer des Operationsergebnisses ist unterschiedlich;
3. Erweiterung des Arrays
- kann einen zweiten Parameter akzeptieren, der den verarbeiteten Wert in ein Array zurückgibt >Array.of konvertiert eine Reihe von Werten in ein Array;
-
copyWithin kopiert das Mitglied an der angegebenen Position an andere Orte; start = 0, end = this.length) - find findet das erste qualifizierte Mitglied, der Parameter ist eine Callback-Funktion findIndex gibt die Position des ersten geeigneten Array-Mitglieds zurück
-
fill füllt das Array mit dem angegebenen Wert, und der zweite und dritte Parameter können die Start- und Endpositionen angeben
Schlüssel, Werte, Einträge-
includes, indexOf ist nicht semantisch genug und wird intern zur Beurteilung verwendet,
[NaN] .indexOf(NaN) // -1 , [NaN].includes( NaN) // true Die has von Map wird verwendet, um den Schlüsselnamen zu finden, und die has von Set werden verwendet, um den Wert zu finden
vier . Die Erweiterung der Funktion-
ermöglicht das Festlegen eines Standardwerts für die Funktion. Wenn ein Nicht-Endparameter auf einen Standardwert eingestellt ist, kann dieser Parameter tatsächlich nicht weggelassen werden Das
-Attribut der Funktion gibt die Anzahl der Parameter ohne angegebenen Standardwert zurück. Wenn der Parameter mit einem festgelegten Standardwert nicht der letzte Parameter ist, wird das
- Sobald der Standardwert des Parameters festgelegt ist, bildet der Parameter einen separaten Bereich (Kontext), wenn die Funktion deklariert und initialisiert wird. Wenn die Initialisierung abgeschlossen ist, verschwindet dieser Bereich. Dieses Syntaxverhalten tritt nicht auf, wenn der Parameter-Standardwert nicht festgelegt ist.
length
Rest-Parameter (... Variablenname)length
- Expand-Operator (...), konvertiert ein Array in eine durch Kommas getrennte Parametersequenz .
- Hinweis zur Verwendung von Pfeilfunktionen:
-Objekt im Funktionskörper ist wo Es ist ein definiertes Objekt und nicht das Objekt, in dem es verwendet wird.
(1) Das/* 替代数组的apply方法 */// ES5的写法function f(x, y, z) { // ...}var args = [0, 1, 2]; f.apply(null, args);// ES6的写法function f(x, y, z) { // ...}var args = [0, 1, 2]; f(...args);/* --------------------------------- */// ES5的写法Math.max.apply(null, [14, 3, 77])// ES6的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);/* --------------------------------- */// ES5的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5]; Array.prototype.push.apply(arr1, arr2);// ES6的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5]; arr1.push(...arr2);
(2) kann nicht als Konstruktor verwendet werden, das heißt, der Befehl - (3) Das
-Objekt kann nicht verwendet werden, da das Objekt nicht im Funktionskörper vorhanden ist. Wenn Sie es verwenden möchten, können Sie stattdessen den Rest-Parameter verwenden.
(4) Der Befehl
this
kann nicht verwendet werden, daher kann die Pfeilfunktion nicht als Generatorfunktion verwendet werden.new
arguments
5. Objekterweiterungen
Attributabkürzungsnotationyield
- Das
-Attribut der Methode gibt den Funktionsnamen (d. h. Methodennamen) zurück
-
Objekt. is ist im Grunde dasselbe wie ===. Der Unterschied besteht darin, dass zum einen
nicht gleich ist und zum anderen, dass - sich selbst entspricht
name
Object.assign(target, o1, o2) wird zum Zusammenführen von Objekten mit demselben Namen verwendet, die zuvor implementierten flachen Kopien können nicht überschrieben werden werden aufgrund von undefiniert und null in Objekte konvertiert. Wenn sie also als Parameter verwendet werden, wird ein Fehler gemeldet.
- Die Object.getOwnPropertyDescriptor-Methode kann das Beschreibungsobjekt dieser Eigenschaft abrufen.
- Traversal von Eigenschaften:
for...in, Object.keys, Object.getOwnPropertyNames(obj), Object.getOwnPropertySymbols(obj), Reflect.ownKeys(obj)
- __proto__ hat die gleiche Funktion wie Object.setPrototypeOf() und dient zum Festlegen des Prototypobjekts eines Objekts, Object.getPrototypeOf()
- Object.keys(), Object.values(), Object.entries()
- Object.getOwnPropertyDescriptors gibt das Beschreibungsobjekt aller seiner eigenen Eigenschaften (nicht geerbten Eigenschaften) des angegebenen zurück Objekt;
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung erweiterter Beispiele verschiedener Datentypen in es6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.


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

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Dreamweaver Mac
Visuelle Webentwicklungstools

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),

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor