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

Ce qui est nouveau dans ES2018

Christopher Nolan
Libérer: 2025-02-15 08:37:12
original
1014 Les gens l'ont consulté

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
async function process(array) {
  for (let i of array) {
    await doSomething(i);
  }
}
Copier après la connexion
renvoie une promesse, permettant à des opérations asynchrones d'être effectuées en série à l'aide de

LOOP: next() for await ... of

async function process(array) {
  for await (let i of array) {
    doSomething(i);
  }
}
Copier après la connexion
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:
function doSomething() {
  doSomething1()
  .then(doSomething2)
  .then(doSomething3)
  .catch(err => {
    console.log(err);
  })
  .finally(() => {
    // 完成后的操作
  });
}
Copier après la connexion

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

4.
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 }
}
Copier après la connexion

Groupe de capture de nom:
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // obj2 = { a: 1, b: 2, c: 3 }
Copier après la connexion
groupe de capture de nom avec

pour améliorer la lisibilité et la maintenance:

  • Guangu Assertion: prend en charge Guangu Assertion (?<name>...), correspondant au modèle qui est apparu auparavant.
const reDate = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
Copier après la connexion
    (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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal