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)
Spezifische Methode: 1. Öffnen Sie die Eingabeauf...
Inhaltsverzeichnis Grundlegende HTML-Struktur Gen...
Vorwort CSS-Raster sind normalerweise in verschie...
Vor ein paar Tagen stellte mir ein Kollege eine F...
Inhaltsverzeichnis Saltstack stellt Zabbix-Dienst...
Das Core Asset Management Project erfordert, dass...
Ich hatte nicht vor, diesen Blog zu schreiben, ab...
1. Fügen Sie einen Benutzer hinzu . Verwenden Sie...
Konzepteinführung: Wir wissen, dass das Redo-Log ...
Vor einigen Tagen habe ich einen Artikel über die...
Vorwort Wir müssen häufig etwas basierend auf bes...
Inhaltsverzeichnis 1. Was ist copy_{to,from}_user...
Hintergrund Es gibt einen Tencent Linux Cloud-Hos...
Inhaltsverzeichnis 1. Prototyp 2. Prototypzeiger:...
MySQL-Filterungs-Timing von Where-Bedingungen und...