Maison >interface Web >js tutoriel >Ce qui est nouveau dans 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:
Caractéristiques principales de ES2018:
1. dans
, si vous essayez d'appeler une fonction asynchrone dans une boucle synchrone, par exemple:
async/await
<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.
<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:
(?<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>
(?...<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!