1. Einleitung Die neuen Funktionen von
1.1 Babel-TranscoderEs ist ein weit verbreiteter ES6-Transpiler. npm install --save-dev @babel/core Konfigurationsdatei # Neueste Transkodierungsregeln $ npm install --save-dev @babel/preset-env # Transkodierungsregeln reagieren$ npm install --save-dev @babel/preset-react // Das Feld „presets“ legt die Transcodierungsregeln fest. Die offizielle Website bietet die folgenden Regelsätze, die Sie nach Bedarf installieren können. { "Voreinstellungen": [ "@babel/env", „@babel/Voreinstellung-reagieren“ ], "Plugins": [] } 1.2 Füllwatte Standardmäßig konvertiert Zum Beispiel: $ npm install --save-dev core-js regenerator-runtime importiere "core-js"; importiere "Regenerator-Laufzeit/Laufzeit"; 2. let und const 2.1 let In Bezug auf den Umfang hat wenn(wahr){ lass a = 1; var b = 2 } console.log(a) // Referenzfehler: a ist nicht definiert console.log(b) // 2 Im folgenden Beispiel erwarten wir eine Ausgabe von 1, da nur eine globale Variable i vorhanden ist. Nach der Ausführung von var-Funktionen = []; für (var i = 0; i < 5; i++) { funcs.push(Funktion () { konsole.log(i); }); } Funktionen[1](); // 5 Lösung: Verwenden Sie für jede Iteration den lokalen Speicher für die Variable „i“ und schließen Sie den Bereich mit einem Abschluss. var-Funktionen = []; für (var i = 0; i < 5; i++) { (Funktion () { var lokal = i funcs.push(Funktion () { konsole.log(lokal); }); } )() } Funktionen[1](); // 1 Derselbe Effekt lässt sich durch die Verwendung 2.2 konstant wenn (wahr) { Konstante PI = 3,141515926; PI = 66666 // TypeError: Zuweisung zur konstanten Variable. } console.log(PI) // ReferenceError: PI ist nicht definiert
const obj = {}; //Fügen Sie erfolgreich ein Attribut zu obj hinzu obj.name = 'hello'; // Wenn obj auf ein anderes Objekt zeigt, tritt ein Fehler auf obj = {}; // TypeError: „obj“ ist schreibgeschützt 3. DekonstruktionDekonstruktion bedeutet wörtlich die Zerlegung der Struktur, also das Aufbrechen der ursprünglichen Struktur. 3.1 ObjektdestrukturierungGrundlegende Verwendung: let { name, age } = { name: "hallo", alter: 12 }; console.log(Name, Alter) // hallo 12 Festlegen von Standardwerten let { name = 'hi', age = 12 } = { name : 'hallo' }; console.log(Name, Alter) // hallo 12 Mit dem let { name, ...remaining } = { name: "hallo", alter: 12, geschlecht: '男' }; console.log(Name, verbleibend) // hallo {Alter: 12, Geschlecht: 'männlich'} 3.2 Array-Destrukturierung Der sei [a, ...restlich] = [1, 2, 3, 4]; console.log(a, verbleibend) // 1 [2, 3, 4] Einige Mitglieder werden bei der Destrukturierung des Arrays ignoriert. sei [a, , ...restlich] = [1, 2, 3, 4]; console.log(a, verbleibend) // 1 [3, 4] 3.3 Destrukturierung von FunktionsparameternArray-Parameter Funktion addieren([x, y]){ gib x + y zurück; } hinzufügen([1, 2]); // 3 Objektparameter Funktion add({x, y} = { x: 0, y: 0 }) { gib x + y zurück; } füge hinzu({x:1,y:2}); 3.4 Gängige SzenarienTauschen Sie Variablen aus, ohne die dritte Variable zu verwenden. sei x = 1; sei y = 2; [x, y] = [y, x]; Extrahieren von JSON-Daten lass json = { Code: 0, Daten: {Name: 'hi'} }; let { Code, Daten: Benutzer } = json; console.log(Code, Benutzer); // 0 {Name: 'hi'} Durchlaufen der Kartenstruktur const map = neue Map(); map.set('name', 'hallo'); map.set('Alter', 12); für (let [Schlüssel, Wert] von Map) { console.log(Schlüssel + " ist " + Wert); } 4. Verlängerung4.1 String-ErweiterungenVorlagenzeichenfolge, das ist sehr nützlich. Verwenden Sie Backticks (`), um sie zu kennzeichnen. Es kann als normale Zeichenfolge verwendet werden oder zum Definieren mehrzeiliger Zeichenfolgen oder zum Einbetten von Variablen in Zeichenfolgen. `Benutzer ${user.name} ist angemeldet…`); 4.2 Funktionserweiterung Sobald die Standardwerte der Parameter festgelegt sind, bilden die Parameter einen separaten Funktion add(x, y = 1) { Rückgabewert x + y } Alternative zu apply() // ES5-Version Math.max.apply(null, [1, 3, 2]) // ES6-Schreibweise von Math.max(...[1, 3, 2]) 4.3 Array-ErweiterungArrays zusammenführen // ES5-Schreibweise für var list = [1,2] liste = liste.concat([3]) // ES6-Weg var list = [1,2] Liste = [...Liste, 3] Neue Array-API Array.from(), Array.of(), find() und findIndex() usw., siehe MDN https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array 4.4 ObjekterweiterungObjekteigenschaften, Methodenabkürzungen Daten = [1,2] const resp = {data}; // Attributabkürzung, entspricht {data: data} const obj = { add(x, y) { // Methodenabkürzung, entspricht add: function(x, y){...} gib x + y zurück; } }; Erweiterte Attribute konstanter Punkt = {x: 1, y: 2} const PunktD = {...Punkt, z: 3} console.log(PunktD) // {x: 1, y: 2, z: 3} // Bei sich wiederholenden Attributen auf die Reihenfolge achten. konstanter Punkt = {x: 1, y: 2} const PunktD = {...Punkt, x: 4, z: 3} console.log(PunktD) // {x: 4, y: 2, z: 3} konstanter Punkt = {x: 1, y: 2} const PunktD = {x: 4, z: 3, ...Punkt} console.log(PunktD) // {x: 1, z: 3, y: 2} Das Beschreibungsobjekt der Eigenschaft Jede Eigenschaft eines Objekts hat ein konstanter Punkt = {x: 1, y: 2} Object.getOwnPropertyDescriptor(Punkt, 'x') /** { konfigurierbar: true enumerable: true // gibt den aufzählbaren Wert an: 1 beschreibbar: true // bedeutet beschreibbar} **/ Attributdurchquerung
konstanter Punkt = {x: 1, y: 2} für (let-Eingabepunkt) { console.log(Schlüssel) } Einige neue Methoden von Objekten: Klonen eines Objekts Funktion Klon(Ursprung) { returniere Object.assign({}, Ursprung); } Objekte zusammenführen const merge = (Ziel, ...Quellen) => Object.assign(Ziel, ...Quellen); Festlegen von Standardwerten const DEFAULT_CONFIG = { debuggen: wahr, }; Funktion Prozess (Optionen) { Optionen = Objekt.assign({}, DEFAULT_CONFIG, Optionen); console.log(Optionen); // ... } 4.5 OperatorerweiterungenExponentialoperator 2 ** 10 // 1024 2 ** 3 ** 2 // 512 entspricht 2 ** (3 ** 2) sei a=10; a **= 3; // entspricht a = a * a * a Verkettungsoperatoren const obj = {name: 'job', say(){console.log('hallo')}} obj?.name // ist gleich obj == null ? undefiniert : obj.name obj?.say() // ist gleich obj == null ? undefiniert : obj.say() Nullprüfoperator In const obj = {name: ''} obj.name || 'hallo' // 'hallo' obj.name ?? 'hallo' // '' 5. für … von Da Konstante Liste = ['a', 'b', 'c'] für (lass v in Liste) { console.log(v) // 0,1,2 } für (sei v der Liste){ console.log(v) // a,b,c } 6. Zusammenfassung Dies ist das Ende dieses Artikels über die Details von Front-End JavaScript ES6. Weitere relevante Inhalte zu Das könnte Sie auch interessieren:
|
<<: So stellen Sie Rancher mit Docker bereit (keine Fallstricke)
>>: Das Deepin20.1-System installiert MySQL8.0.23 (superdetailliertes MySQL8-Installationstutorial)
Inhaltsverzeichnis Routing-Plugins modular nutzen...
Kürzlich hat das WeChat Mini-Programm Anpassungen...
Ein n-stelliger Bestätigungscode, der aus Zahlen,...
Wir müssen zunächst die Luftqualitätsdaten mit de...
In MySQL können Sie die Funktionen IF(), IFNULL()...
1. Virtuelle Umgebung folgt dem Projekt, erstelle...
Ich habe viele Online-Ressourcen zu diesem Problem...
Vorwort Wir sagen oft, dass Node keine neue Progr...
Das Erstellen eines Images ist ein sehr wichtiger...
Unter Linux ist alles eine Datei (Verzeichnisse s...
Denn wenn am Ende des Unterordners kein Schrägstri...
Inhaltsverzeichnis Tomcat-Einführung Tomcat-Berei...
Inhaltsverzeichnis Vorwort Systemumgebung Aktuell...
brauchen Wenn Sie ein Feld abfragen, müssen Sie e...
Nach der Installation von Docker trat beim Versuc...