Maison >interface Web >js tutoriel >Quoi de neuf dans ES2017: fonctions asynchrones, objets améliorés et plus
ES2017 (ECMAScript 2017) a introduit plusieurs mises à jour importantes de JavaScript, qui se concentrera sur et décritera brièvement son processus de mise à jour.
Points de base
Object.values()
, Object.entries()
et Object.getOwnPropertyDescriptors()
. Ces méthodes sont prises en charge dans la plupart des navigateurs modernes et Node.js 7.0. Mettre à jour le processus
Les normes JavaScript (ECMAScript) évoluent constamment et sont implémentées par de nombreux fabricants sur plusieurs plates-formes. ES6 (ECMAScript 2015) a mis six ans à être finalement achevé et est énorme. Pour simplifier le processus et ajouter rapidement de nouvelles fonctionnalités, un nouveau processus de publication annuel a été développé.
Le comité technique 39 (TC39) est composé de participants tels que les fabricants de navigateurs qui suivent un processus strict pour faire progresser la proposition de JavaScript:
Étape 0: Strawman - une idée préliminaire de capacités ECMAScript nouvelles ou améliorées.
Étape 1: Proposition - Un document de proposition formel préconisé par au moins un membre TC39, y compris des exemples d'API, la sémantique linguistique, les algorithmes, les obstacles potentiels, les polyfills et les démonstrations.
Étape 2: Draft - La version initiale de la spécification fonctionnelle. Deux implémentations expérimentales sont nécessaires, dont l'une peut être mise en œuvre dans un traducteur tel que Babel.
Étape 3: candidat - passez en revue les spécifications de la proposition et collectez les commentaires du fournisseur.
Étape 4: terminé - La proposition est prête à être incluse dans ECMAScript. Seules les fonctions qui atteignent ce stade sont considérées comme standard. Cependant, il peut prendre plus de temps pour se libérer en temps d'exécution comme les navigateurs et Node.js.
ES2016 est de petite échelle et est conçu pour valider les processus standardisés. Deux nouvelles fonctionnalités ont été ajoutées:
.includes()
du Array Renvoie True ou FALSE lorsque le tableau contient une valeur. a ** b
Opérateur d'alimentation, comme Math.pow(a, b)
. Nouvelles fonctionnalités de ES2017
ES2017 (ou autrefois connu sous le nom d'ES8) est considéré comme la première révision appropriée de la spécification ECMAScript. Il fournit les fonctionnalités suivantes ...
fonction asynchrone
Contrairement à la plupart des langues, JavaScript est asynchrone par défaut. Les commandes qui peuvent prendre du temps n'arrêteront pas de s'exécuter. Cela comprend des opérations telles que la demande d'URL, la lecture de fichiers ou la mise à jour de bases de données. Une fonction de rappel doit être réalisée qui est exécutée lorsque le résultat de l'opération est connu.
Cela peut conduire à un refuge lorsqu'une série de fonctions asynchrones imbriquées doit être exécutée séquentiellement. Par exemple:
<code class="language-javascript">function doSomething() { doSomething1((response1) => { doSomething2(response1, (response2) => { doSomething3(response2, (response3) => { // etc... }; }); }); }</code>
ES2015 (ES6) introduit Promise, qui fournit un moyen plus clair d'exprimer les mêmes fonctionnalités. Une fois vos fonctions prometteuses, elles peuvent être exécutées en utilisant les méthodes suivantes:
<code class="language-javascript">function doSomething() { doSomething1() .then(doSomething2) .then(doSomething3) }</code>
ES2017 La fonction asynchrone étend la promesse de rendre les appels asynchrones plus clairs:
<code class="language-javascript">async function doSomething() { const response1 = await doSomething1(), response2 = await doSomething2(response1), response3 = await doSomething3(response2); }</code>
await
Rendre efficacement chaque appel synchrone sans consommer un seul thread de traitement en javascript.
Les fonctions asynchrones sont prises en charge dans tous les navigateurs modernes (sauf IE et Opera Mini) et dans Node.js 7.6. Ils changeront la façon dont vous écrivez JavaScript et pourront rédiger un article spécial sur les rappels, les promesses et les fonctions asynchrones.
Les descriptions de Object.values()
, Object.entries()
, Object.getOwnPropertyDescriptors()
, .padStart()
, .padEnd()
et
partagé paraSraybuffer et atomics
Les objets SharedArrayBuffer sont utilisés pour représenter des tampons de données binaires bruts de longueur fixe qui peuvent être partagés entre les travailleurs du Web. Les objets atomiques fournissent un moyen prévisible de lire et d'écrire des emplacements de mémoire définis par SharedArrayBuffer.
Bien que Chrome et Firefox implémentent les deux objets, il a été désactivé en janvier 2018 en raison d'une vulnérabilité de Spectre.
La spécification complète de la langue ECMAScript 2017 est disponible sur le site Web de l'ECMA International.
ES2017 FAQ (FAQ)
(La partie FAQ est similaire au texte d'origine et ne sera pas répétée ici. Vous pouvez conserver ou réécrire de manière sélective au besoin.)
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!