ES2017(ECMAScript 2017)は、JavaScriptにいくつかの重要な更新を導入しました。
コアポイント
Object.values()
、Object.entries()
、Object.getOwnPropertyDescriptors()
を含める。これらの方法は、ほとんどの最新のブラウザーとnode.js 7.0でサポートされています。 プロセスを更新
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つの新しい機能が追加されました:
アレイに値が含まれている場合、
.includes()
a ** b
と同じです。 Math.pow(a, b)
の新機能 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) }
async function doSomething() { const response1 = await doSomething1(), response2 = await doSomething2(response1), response3 = await doSomething3(response2); }
JavaScriptで単一の処理スレッドを消費せずに、各コールの外観を効果的に同期させます。 await
、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 サイトの他の関連記事を参照してください。