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:
Caractéristiques principales de ES2018:
1. dans
, si vous essayez d'appeler une fonction asynchrone dans une boucle synchrone, par exemple:
async/await
async function process(array) { for (let i of array) { await doSomething(i); } }
LOOP: next()
for await ... of
async function process(array) { for await (let i of array) { doSomething(i); } }
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.
function doSomething() { doSomething1() .then(doSomething2) .then(doSomething3) .catch(err => { console.log(err); }) .finally(() => { // 完成后的操作 }); }
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 } }
Groupe de capture de nom:
const obj1 = { a: 1, b: 2 }; const obj2 = { ...obj1, c: 3 }; // obj2 = { a: 1, b: 2, c: 3 }
pour améliorer la lisibilité et la maintenance:
(?<name>...)
, correspondant au modèle qui est apparu auparavant. const reDate = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
(?...<name>...)</name>
s
pour accéder aux attributs de caractères Unicode.
.
Promise.finally()
, attributs de repos / propagation, amélioration de l'expression régulière, etc. 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!