Heim > Web-Frontend > js-Tutorial > Was ist neu in ES2018

Was ist neu in ES2018

Christopher Nolan
Freigeben: 2025-02-15 08:37:12
Original
1012 Leute haben es durchsucht

What's New in ES2018

ES2018 Kernverbesserungen: Asynchrone Iteration, Versprechen.Finally (), Rest-/Spread -Attribute und regelmäßige Expressionsverbesserungen

ES2018 (auch als ES9 bekannt) hat mehrere wichtige Aktualisierungen für JavaScript gebracht.

JavaScript Standard (ECMAScript) entwickelt sich weiter und nach ES6 (ECMAScript 2015) beschleunigt der neue Jahresveröffentlichungsprozess die Iteration von Funktionen. ES2018 war die neueste Version zu dieser Zeit.

TC39 (Technischer Ausschuss 39) ist für die Förderung von JavaScript -Vorschlägen verantwortlich, und der Prozess lautet wie folgt:

  • Stufe 0: Vorrunde vorläufiges Konzept.
  • Stufe 1: Vorschlag formelles Vorschlagsdokument, das API -Beispiele enthält.
  • Stufe 2: Entwurf vorläufige Spezifikationen, mindestens zwei experimentelle Implementierungen.
  • Stufe 3: Kandidat Feedback für die Überprüfung und Sammlung des Herstellers.
  • Stufe 4: Vervollständigen Sie , um ECMASSCRIPT zu enthalten, aber die tatsächliche Unterstützung für Browser und Knoten.js kann zurückbleiben.

Hauptmerkmale von ES2018:

1 In

, wenn Sie versuchen, eine asynchrone Funktion in einer synchronen Schleife aufzurufen, z. B.

async/await

funktioniert nicht richtig. ES2018 führt einen asynchronen Iterator ein, dessen
async function process(array) {
  for (let i of array) {
    await doSomething(i);
  }
}
Nach dem Login kopieren
-Methode ein Versprechen zurückgibt, sodass asynchronen Operationen mit

Loop: next() in Serie durchgeführt werden können: for await ... of

async function process(array) {
  for await (let i of array) {
    doSomething(i);
  }
}
Nach dem Login kopieren

2 wird verwendet, um denselben Code nach Abschluss des Versprechens auszuführen (ob erfolgreich oder fehlgeschlagen), und wird häufig für die Reinigungsarbeiten verwendet:

Promise.finally()

3
function doSomething() {
  doSomething1()
  .then(doSomething2)
  .then(doSomething3)
  .catch(err => {
    console.log(err);
  })
  .finally(() => {
    // 完成后的操作
  });
}
Nach dem Login kopieren
ES2018 erweitert die REST/Spread -Syntax auf Objektzerstörung:

Spread Operator wird verwendet, um flache Kopien zu erstellen oder Objekte von Objekten zu verschmelzen:

const myObject = { a: 1, b: 2, c: 3 };
const { a, ...x } = myObject; // a = 1, x = { b: 2, c: 3 }

function restParam({ a, ...x }) {
  // a = 1, x = { b: 2, c: 3 }
}
Nach dem Login kopieren
4.

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // obj2 = { a: 1, b: 2, c: 3 }
Nach dem Login kopieren
Name Capture Group:

Name Capture Group mit , um die Lesbarkeit und Wartung zu verbessern:

  • Guangu Assertion: (?<name>...) unterstützt Guangu Assertion
  • und entspricht dem zuvor erschienenen Muster.
const reDate = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
Nach dem Login kopieren
  • (dotall) Flag: Übereinstimmen Sie alle Zeichen, einschließlich Zeilenpausen. (?...<name>...)</name>
  • Unicode -Attribut Escape: Verwenden Sie s und , um auf Unicode -Zeichenattribute zuzugreifen. .
  • ES2018 FAQ: p{...}
    • Was sind die neuen Funktionen von ES2018? Asynchrone Iteration, Promise.finally(), Rest-/Spread -Attribute, regelmäßige Expressionsverbesserung usw.
    • Wie verwendet ich die neuen Funktionen von ES2018? Stellen Sie sicher, dass Ihre Entwicklungsumgebung ES2018 unterstützt, was normalerweise von modernen Browsern und Node.js -Versionen unterstützt wird.
    • Wie ist es mit älteren Versionen von ECMascript kompatibel? ES2018 ist rückwärts kompatibel, aber die alte Umgebung unterstützt möglicherweise nicht alle neuen Funktionen und kann mit Tools wie Babel übersetzt werden.
    • Was ist die Leistungsauswirkungen? hängt von den spezifischen Eigenschaften und den spezifischen Nutzung ab, soll die Effizienz im Allgemeinen verbessern.
    • Wie vergleichen ES2018 mit ES6 und ES7? ES2018 verbessert vorhandene Funktionen und fügt neue Tools basierend auf ES6 und ES7 hinzu.

    Ich hoffe, die oben genannten Informationen werden Ihnen hilfreich sein!

Das obige ist der detaillierte Inhalt vonWas ist neu in ES2018. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage