本「開発者向けECMAScript 6」

画像 新しいECMAScript 6標準によってもたらされたJavaScriptの抜本的な変更について学びましょう。ベストセラーの著者であり開発の専門家であるNicholas Zakasは、新しいタイプのオブジェクト、構文、興味深い関数に関する最も包括的なガイドを作成しました。 各章には、JavaScript環境で動作し、言語の新しい機能を紹介するプログラムの例が含まれています。 この本を読んだ後、イテレータとジェネレータがどのように役立つか、リンク関数が通常のものとどのように異なるか、データを操作できる追加オプション、型の継承、非同期プログラミング、モジュールがコードを編成する方法を変更する方法などについて学びます友達。



さらに、Nicholas ZakasはECMAScript 7での変更点を調べます。Web開発者であるかnode.jsで作業しているかは関係ありません。この本では、ECMAScript 6のすべての機能を効果的に使用できる最も必要な情報を見つけます。



本の宛て先



この本は、JavaScriptとECMAScript 5にすでに精通している人向けのガイドとして作成されました。この本を扱うための言語の完全な知識は必須ではありませんが、ECMAScript 5と6の違いを理解するのに役立ちます。特に、この本は開発者向けです。言語に登場した最新のイノベーションについて学びたいブラウザまたはNode.js向けのスクリプトエクスペリエンスを備えたJavaScript。



この本は、決してJavaScriptで書いたことのない初心者向けではありません。 この本を読むには、少なくとも言語の基本を知っている必要があります。



コンテンツの概要



この本のすべての章とアプリケーションは、ECMAScript 6のさまざまな側面をカバーしています。多くの章は、ECMAScript 6の変更によって対処される問題の議論から始まります。 すべての章には、新しいアイデアと構文構成を示すコード例が含まれています。



•第1章「ブロックバインディング」では、ブロックレベルでvarステートメントを置き換えるletおよびconstステートメントについて説明します。



•第2章「文字列と正規表現」では、追加の文字列関数について説明し、テンプレート文字列を紹介します。



•第3章「関数」では、矢印関数、デフォルトパラメータ、残差パラメータ、およびその他の機能を含む、関数に加えられたさまざまな変更について説明します。



•第4章「オブジェクトの高度な機能」では、オブジェクトの作成、変更、および使用方法の変更点について説明します。 議論されているトピックには、オブジェクトリテラルの構文の変更と、リフレクションの新しい方法があります。



•第5章「データへのアクセスを単純化するための分解」では、オブジェクトと配列を分解する構文を紹介します。これにより、コンパクトな構文を使用してオブジェクトと配列を分解できます。



•第6章、シンボルとシンボルプロパティでは、プロパティの新しい定義方法であるシンボルの概念を紹介します。 シンボルは、オブジェクトのプロパティとメソッドを(完全ではありませんが)非表示にするために使用できる新しい単純なデータ型です。



•第7章「セットと連想配列」では、新しいタイプのコレクション、Set、WeakSet、Map、およびWeakMapについて説明します。 これらの型は、JavaScript専用に設計された値とメモリコントロールの一意性の保証を通常の配列に追加します。



•第8章「イテレータとジェネレータ」では、言語へのイテレータとジェネレータの追加について説明します。 これらのツールは、以前のバージョンのJavaScriptでは利用できなかったデータコレクションを操作するための新しい強力な方法を開きます。



•第9章「JavaScriptクラスの概要」では、JavaScriptのクラスの最初の形式化された概念を紹介します。 JavaScriptのオブジェクト指向モデルは、他の言語から切り替えたプログラマーの間でしばしば混乱を引き起こします。 クラスを操作するための新しいオプションの構文により、JavaScriptは他の人にとってよりアクセスしやすく、愛好家にとって表現力が豊かになります。



•第10章「高度な配列機能」では、通常の配列に影響を与える変更と、JavaScriptでそれらを使用する新しい方法について説明します。



•第11章「Promiseオブジェクトと非同期プログラミング」では、新しい言語要素である非同期コンピューティングオブジェクト(Promise)を紹介します。 非同期コンピューティングオブジェクトは、多大な努力の結果であり、ライブラリでの広範なサポートのおかげですぐに人気を得ました。 ECMAScript 6仕様はこれらのオブジェクトを形式化し、デフォルトで利用可能にしました。



•第12章「プロキシオブジェクトとReflection API」では、JavaScriptのリフレクションAPIと、オブジェクトを使用した操作を傍受できる新しいプロキシオブジェクトを紹介します。 プロキシオブジェクトを使用すると、開発者はこれまでにないオブジェクトの制御が可能になり、その結果、新しい対話パターンを無制限に定義できるようになります。



•第13章「コードをモジュールにカプセル化する」では、JavaScriptの公式モジュール形式について説明します。 その目的は、この言語が長年にわたって出現してきた多くの非標準モジュール定義フォーマットを置き換えることです。



•付録A「ECMAScript 6のマイナーな変更」では、めったに使用されない、または前の章で説明した大きな変更とは関係のないECMAScript 6のその他の変更について説明します。



•付録B「ECMAScript 7の概要(2016)」では、ECMAScript 7エディションに含まれる標準への3つの追加について説明します。ECMAScript6ほどJavaScriptに大きな影響はありません。



ECMAScript 6の作業には数年かかり、その結果、TC-39技術委員会は、開発プロセスのこのような長さは完全に受け入れられないと結論付けました。 したがって、言語の新機能のより迅速な実装を保証するために、変更のリリースの年次サイクルに切り替えることが決定されました。



より頻繁なリリースは、ECMAScript 6よりもECMAScriptの後続の各エディションのイノベーションが少ないことを意味します。新しいサイクルへの移行を示すため、仕様の新しいバージョンにエディション番号ではなく発行年ごとに番号を付けることにしました。 その結果、ECMAScript 6のエディションはECMAScript 2015とも呼ばれ、ECMAScript 7は正式にはECMAScript 2016と呼ばれます。TC-39委員会は、ECMAScriptのすべての今後のエディションで命名システムを年番号とともに使用する予定です。



ECMAScript 2016エディションの作業は2016年3月に完了し、言語への3つの追加のみが含まれます。新しい数学演算子、新しい配列メソッド、および新しい構文エラーです。 3つのイノベーションはすべて、この付録の後半で説明します。



べき乗演算子



ECMAScript 2016で提供されるJavaScript構文の唯一の変更は、同じ名前の数学演算を実行するべき乗演算子です。 JavaScriptには既に累乗を行うMath.pow()メソッドがありますが、JavaScriptは正式な演算子の代わりにメソッドを使用する必要がある数少ない言語の1つであり続けています。 さらに、一部の開発者は、オペレーターがコードを読みやすいと主張しています。



べき乗演算子の形式は2つのアスタリスク(**)です。左側のオペランドが基数として使用され、右側のオペランドが次数として使用されます。 例:



let result = 5 ** 2; console.log(result); // 25 console.log(result === Math.pow(5, 2)); // true
      
      





この例では、式5の2乗を計算します。その結果は25です。必要に応じて、 Math.pow()メソッドを使用しても同じ計算を実行できます。



操作の順序



べき乗演算子は、JavaScriptのすべてのdouble演算子の中で最も高い優先度を持ちます(単項演算子は**よりも高い優先度を持ちます)。 これは、たとえば次のような複雑な式で最初に実行されることを意味します。



 let result = 2 * 5 ** 2; console.log(result); // 50
      
      





ここでは、最初の結果5が2次で見つかり、その後、結果の値に2が乗算されます。最終結果は50になります。



オペランドの制限



べき乗演算子は、他の演算子にはないいくつかの異常な制限を課します。 左のオペランドは、++および-を除き、単項演算子を含む式にはできません。 たとえば、次の例では構文エラーがスローされます。



 //   let result = -5 ** 2;
      
      





この例の式-5は、操作の順序を決定する際にあいまいさがあるため、構文エラーと見なされます。 単項演算子は、数値5または式5 ** 2の結果に適用する必要がありますか? べき乗演算子の左側の単項式の使用を禁止すると、このあいまいさがなくなります。 意図を明確に示すには、以下に示すように、括弧-5または5 ** 2で囲みます。



 //  let result1 = -(5 ** 2); //   -25 //   let result2 = (-5) ** 2; //   25
      
      





式を括弧で囲むと、単項演算子が式全体に適用されます。 -5をカッコで囲むと、インタープリターは-5を2乗する必要があることを理解します。



指数演算子の左側に++および-演算子を含む式は、両方の演算子の動作がオペランドに向けられたものとして明確に定義されているため、括弧で囲む必要はありません。 接頭辞演算子++または-は、他の操作を実行する前にオペランドを変更し、後置バージョンは式全体が評価されるまで何も変更しません。 どちらの場合でも、これらの演算子は、べき乗演算子の左側で使用してもエラーを引き起こしません。次に例を示します。



 let num1 = 2, num2 = 2; console.log(++num1 ** 2); // 9 console.log(num1); // 3 console.log(num2-- ** 2); // 4 console.log(num2); // 1
      
      





この例では、 num1の値は累乗演算子を実行する前に増加するため、num1は値3を取得し、演算の結果は9になります。変数num2は累乗演算子を実行する前に値2を格納し、その後1に減少します。



著者について



Nicholas Zakasは、2000年以来、主にクライアント側のWebアプリケーションを開発しており、高度なユーザーインターフェイス設計技術に関する本や講義で広く知られています。 5年間、Yahoo!で働いた経験を磨き、Yahooのホームページを担当する主任エンジニアを務めました!..オブジェクト指向JavaScriptの原則(No Starch Press、2014)およびWeb用のプロフェッショナルJavaScriptを含む複数の書籍の著者開発者(Wrox、2012)。



Science Editorについて



ユーリ・ザイツェフ(ジュリー・ザイツェフ、ウェブ上で仮名kangaxで知られる)は、ニューヨークに拠点を置くWeb開発者です。 2007年以降のJavaScriptの異常な性質について調べて書いています。 Prototype.jsを含むいくつかのオープンソースプロジェクト、および彼自身のFabric.jsなどの他の人気プロジェクトの開発に貢献します。 カスタム印刷会社printio.ruの共同設立者。 現在、Facebookで機能しています。



»本の詳細については、出版社のウェブサイトをご覧ください

» コンテンツ

» 抜粋



ホーカーのクーポンが25%オフ-ECMAScript



All Articles