Maison >interface Web >js tutoriel >Ce qui est nouveau dans ES2018

Ce qui est nouveau dans ES2018

Christopher Nolan
Christopher Nolanoriginal
2025-02-15 08:37:121028parcourir

What's New in ES2018

ES2018 Améliorations du cœur: itération asynchrone, promesse.finalement (), attributs de repos / propagation et améliorations d'expression régulière

ES2018 (également connu sous le nom d'ES9) a apporté plusieurs mises à jour importantes à JavaScript.

JavaScript Standard (ECMAScript) continue d'évoluer, et après ES6 (ECMAScript 2015), le nouveau processus de version annuel accélère l'itération des fonctions. ES2018 était la dernière version à l'époque.

TC39 (comité technique 39) est responsable de la promotion des propositions JavaScript, et le processus est le suivant:

  • Étape 0: Forme préliminaire Concept préliminaire.
  • Étape 1: Proposition Document de proposition formelle, contenant des exemples d'API.
  • Étape 2: Draft Spécifications préliminaires, au moins deux implémentations expérimentales.
  • Étape 3: candidat Standardiser la révision et collecter les commentaires du fabricant.
  • Étape 4: Compléter Préparez-vous à inclure ECMAScript, mais la prise en charge réelle des navigateurs et Node.js peut être à la traîne.

Caractéristiques principales de ES2018:

1. dans

, si vous essayez d'appeler une fonction asynchrone dans une boucle synchrone, par exemple:

async/await

ne fonctionnera pas correctement. ES2018 introduit un itérateur asynchrone, dont la méthode
<code class="language-javascript">async function process(array) {
  for (let i of array) {
    await doSomething(i);
  }
}</code>
renvoie une promesse, permettant à des opérations asynchrones d'être effectuées en série à l'aide de

LOOP: next() for await ... of

<code class="language-javascript">async function process(array) {
  for await (let i of array) {
    doSomething(i);
  }
}</code>
2.

est utilisé pour exécuter le même code une fois la promesse terminée (qu'elle soit réussie ou échouée), et est souvent utilisée pour le nettoyage du travail:

Promise.finally() 3.

es2018 étend la syntaxe de repos / propagation à la destruction des objets:
<code class="language-javascript">function doSomething() {
  doSomething1()
  .then(doSomething2)
  .then(doSomething3)
  .catch(err => {
    console.log(err);
  })
  .finally(() => {
    // 完成后的操作
  });
}</code>

L'opérateur de diffusion est utilisé pour créer des copies peu profondes ou fusionner des objets d'objets:

4.
<code class="language-javascript">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 }
}</code>

Groupe de capture de nom:
<code class="language-javascript">const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // obj2 = { a: 1, b: 2, c: 3 }</code>
groupe de capture de nom avec

pour améliorer la lisibilité et la maintenance:

  • Guangu Assertion: prend en charge Guangu Assertion (?<name>...)</name>, correspondant au modèle qui est apparu auparavant.
<code class="language-javascript">const reDate = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;</day></month></year></code>
    (Dotall) Indicateur:
  • Faire correspondre tous les caractères, y compris les pauses de ligne. (?...<name>...)</name>
  • Attribut Unicode Escape:
  • Utilisez et s pour accéder aux attributs de caractères Unicode. .
  • FAQ ES2018:
    • Quelles sont les nouvelles fonctionnalités de l'ES2018? itération asynchrone, Promise.finally(), attributs de repos / propagation, amélioration de l'expression régulière, etc.
    • Comment utiliser les nouvelles fonctionnalités de l'ES2018? Assurez-vous que votre environnement de développement prend en charge ES2018, qui est généralement pris en charge par les navigateurs modernes et les versions Node.js.
    • Comment est-il compatible avec les anciennes versions d'Ecmascript? es2018 est compatible en arrière, mais l'ancien environnement peut ne pas prendre en charge toutes les nouvelles fonctionnalités et peut être traduit à l'aide d'outils tels que Babel.
    • Quel est l'impact des performances? dépend des caractéristiques et de l'utilisation spécifiques, mais vise à améliorer l'efficacité en général.
    • Comment ES2018 se compare-t-il avec ES6 et ES7? ES2018 améliore les fonctions existantes et ajoute de nouveaux outils basés sur ES6 et ES7.

    J'espère que les informations ci-dessus vous seront utiles!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Une introduction à Sails.jsArticle suivant:Une introduction à Sails.js