ホームページ > ウェブフロントエンド > jsチュートリアル > ES2017の新しいもの:Async関数、改善されたオブジェクトなど

ES2017の新しいもの:Async関数、改善されたオブジェクトなど

William Shakespeare
リリース: 2025-02-15 12:33:12
オリジナル
972 人が閲覧しました

What’s new in ES2017: Async functions, improved objects and more

ES2017(ECMAScript 2017)は、JavaScriptにいくつかの重要な更新を導入しました。

コアポイント

  • async関数:同期コードを書くようなPromiseに基づいて非同期コードを書くことができます。この機能は、すべての最新のブラウザー(IEおよびOpera Miniを除く)およびNode.js 7.6でサポートされています。
  • オブジェクト処理のための新しい方法
  • Object.values()Object.entries()Object.getOwnPropertyDescriptors()を含める。これらの方法は、ほとんどの最新のブラウザーとnode.js 7.0でサポートされています。
  • 文字列充填方法(.padstart()および.padend()):文字列のフォーマットを簡素化します。すべての最新のブラウザ(IEを除く)とnode.js 8.0がサポートされています。
  • トレーリングコンマの保存:オブジェクト定義、配列宣言、関数パラメーターリストなどでトレーリングコンマを保存します。すべてのブラウザとnode.jsがサポートされています。機能パラメーターの後続コンマは、執筆時点でChrome 58とFirefox 52でのみサポートされています。

プロセスを更新

JavaScript(ECMAScript)標準は絶えず進化しており、複数のプラットフォームで多くのメーカーによって実装されています。 ES6(ECMAScript 2015)は最終的に完了するのに6年かかり、規模が大きくなりました。プロセスを簡素化し、新しい機能をすばやく追加するために、新しい年次リリースプロセスが開発されました。

技術委員会39(TC39)は、JavaScriptの提案を進めるために厳格なプロセスに従うブラウザメーカーなどの参加者で構成されています。

ステージ0:ストローマン - ECMAScriptの新しいまたは改善された能力の予備的なアイデア。

ステージ1:提案 - APIの例、言語セマンティクス、アルゴリズム、潜在的な障害、ポリフィル、デモンストレーションなど、少なくとも1人のTC39メンバーが提唱する正式な提案文書。

ステージ2:ドラフト - 機能仕様の初期バージョン。 2つの実験的実装が必要であり、そのうちの1つはBabelなどの翻訳者に実装できます。

ステージ3:候補者 - 提案の仕様を確認し、ベンダーからフィードバックを収集します。

ステージ4:終了 - 提案はECMAScriptに含まれる準備ができています。この段階に到達する関数のみが標準と見なされます。ただし、ブラウザやnode.jsなどのランタイムでリリースするのに時間がかかる場合があります。

ES2016は規模が小さく、標準化されたプロセスを検証するように設計されています。 2つの新しい機能が追加されました:

アレイに値が含まれている場合、
    配列の
  1. メソッドはtrueまたはfalseを返します。 .includes()
  2. 電力演算子、a ** bと同じです。 Math.pow(a, b)
  3. ES2017

の新機能 ES2017(または以前はES8として知られていた)は、ECMAScript仕様の最初の適切な改訂版と見なされます。次の機能を提供します...

async function

ほとんどの言語とは異なり、JavaScriptはデフォルトでは非同期です。いつでも時間がかかる可能性のあるコマンドは、実行を停止しません。これには、URLの要求、ファイルの読み取り、データベースの更新などの操作が含まれます。操作の結果がわかっているときに実行されるコールバック関数を渡す必要があります。

これは、一連のネストされた非同期関数を順次実行する必要がある場合、コールバック地獄につながる可能性があります。たとえば、

function doSomething() {
  doSomething1((response1) => {
    doSomething2(response1, (response2) => {
      doSomething3(response2, (response3) => {
        // etc...
      };
    });
  });
}
ログイン後にコピー

ES2015(ES6)は、同じ機能を表現するためのより明確な方法を提供する約束を導入します。関数が約束されたら、次の方法を使用して実行できます。

function doSomething() {
  doSomething1()
  .then(doSomething2)
  .then(doSomething3)
}
ログイン後にコピー
ES2017非同期関数は、非同期呼び出しをより明確にするという約束を拡張します:

async function doSomething() {
  const
    response1 = await doSomething1(),
    response2 = await doSomething2(response1),
    response3 = await doSomething3(response2);
}
ログイン後にコピー

JavaScriptで単一の処理スレッドを消費せずに、各コールの外観を効果的に同期させます。 await

Async関数は、すべての最新のブラウザー(IEおよびOpera Miniを除く)およびnode.js 7.6でサポートされています。彼らはあなたがJavaScriptの書き方を変え、コールバック、約束、および非同期関数に関する特別な記事を書くことができます。

Object.values()Object.entries()Object.getOwnPropertyDescriptors().padStart().padEnd()の説明と、後続のコンマは元のテキストに似ており、ここでは繰り返されません。

sharedarraybuffer and atomics

SharedArrayBufferオブジェクトは、Webワーカー間で共有できる固定長の生のバイナリデータバッファを表すために使用されます。 Atomicsオブジェクトは、SharedArrayBufferによって定義されたメモリの場所を読み書きできる予測可能な方法を提供します。

ChromeとFirefoxの両方が両方のオブジェクトを実装していますが、Specterの脆弱性により2018年1月に無効になりました。

完全なECMAScript 2017言語仕様は、ECMA International Webサイトで入手できます。

ES2017 FAQ(FAQ)

(FAQパーツは元のテキストに似ており、ここでは繰り返されません。必要に応じて選択的に保持または書き直すことができます。)

以上がES2017の新しいもの:Async関数、改善されたオブジェクトなどの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート