JavaScript ES6
ECMAScript2015は、JavaScriptの2番目のメジャーリビジョンです。
ECMAScript2015は、ES6およびECMAScript6としても知られています。
この章では、ES6の最も重要な機能について説明します。
ES6 の新機能
- The let keyword
- The const keyword
- Arrow Functions
- The ... Operator
- For/of
- Map Objects
- Set Objects
- Classes
- Promises
- Symbol
- Default Parameters
- Function Rest Parameter
- String.includes()
- String.startsWith()
- String.endsWith()
- Array.from()
- Array keys()
- Array find()
- Array findIndex()
- New Math Methods
- New Number Properties
- New Number Methods
- New Global Methods
- Object entries
- JavaScript Modules
ES6(2015)のブラウザーサポート
Safari 10とEdge 14 は、ES 6を完全にサポートする最初のブラウザです。
| Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
| 2017年1月 | 2016年8月 | 2017年3月 | 2016年7月 | 2018年8月 |
The let keyword
このletキーワードを使用すると、ブロックスコープで変数を宣言できます。
詳細については、JavaScript Letの章を参照してください。
The const keyworde
このconstキーワードを使用すると、定数(定数値を持つJavaScript 変数)を宣言できます。
定数はlet変数と似ていますが、値を変更できない点が異なります。
詳細については、JavaScript Constの章を参照してください。
Arrow Functions
アロー関数を使用すると、短い構文で関数式を作成できます。
functionキーワード、returnキーワード、および中括弧は必要ありません。
アロー関数には独自のthisがありません。これらはオブジェクトメソッドの定義にはあまり適していません。
アロー関数はホイストされません。これらは使用する前に定義する必要があります。
関数式は常に定数値であるため、varを使用する方が をconstを使用するよりも安全です。
return関数が単一のステートメントの場合は、キーワードと中括弧のみを省略できます。このため、常にこれらを維持するのが良い習慣になる可能性があります。
アロー関数の詳細については、次のJavaScript Arrow Functionsの章を参照してください。
The ... Operator
... 演算子は、反復可能(配列など)をさらに多くの要素に拡張します。
例
... 演算子を使用すると、反復可能を関数呼び出しのさらに多くの引数に拡張できます。
For/Of ループ
JavaScriptfor/ofステートメントは反復可能なオブジェクトの値をループします。
for/of配列、文字列、マップ、NodeListなどの反復可能なデータ構造をループできます。
このfor/ofループの構文は次のとおりです。
*変数*- 反復ごとに、次のプロパティの値が変数に割り当てられます。変数はconst、let、 またvarで宣言できます。
iterable- 反復可能なプロパティを持つオブジェクト。
配列のループ
文字列のループ
詳細については、JavaScript ループ For/In/Ofの章を参照してください。
JavaScript マップ
オブジェクトをキーとして使用できることは、Mapの重要な機能です。
MapオブジェクトとMapとArrayの違いの詳細については、JavaScript マップの章を参照してください。
JavaScript セット
例
Setオブジェクトの詳細については、JavaScript セットの章を参照してください。
JavaScript クラス
JavaScript クラスは、JavaScriptオブジェクトのテンプレートです。
クラスを作成するには、キーワードclassを使用します。
constructor()という名前のメソッドを常に追加します。:
構文
例
上記の例では、「Car」という名前のクラスを作成します。
このクラスには、「名前」と「年」という2つの初期プロパティがあります。
JavaScriptのクラスはオブジェクトでは無い
これはJavascriptオブジェクトのテンプレートである。
クラスの使用
クラスがある場合、そのクラスを使用してオブジェクトを作成できます。
クラスの詳細については、次のJavaScript クラスの章を参照してください。
JavaScriptの約束
Promise は、「Producing Code」と「Consuming Code」をリンクするJavaScriptオブジェクトです。
「Producing Code」には時間がかかる場合があり、「Consuming Code」は結果を待つ必要があります。
約束の構文
Promise の使用例
次の章でPromiseの詳細を学びます。
シンボルタイプ
JavaScriptシンボルは、Number、String、またはBooleanと同様のプリミティブ データ型です。
これは、他のコードが誤ってアクセスできない一意の「隠された」識別子を表します。
たとえば、異なるコーダーがサードパーティコードに属するpersonオブジェクトにperson.idプロパティを追加したい場合、お互いの値を混在させることができます。
Symbol()を使用して一意の識別子を作成すると、この問題が解決されます。
例
注
シンボルは常に一意です。
同じ説明で 2 つのシンボルを作成すると、異なる値になります。
Default Parameters
ES6では、関数パラメーターにデフォルト値を設定できます。
例
Function Rest Parameter
残りのパラメーター(...)を使用すると、関数は不特定の数の引数を配列として扱うことができます。
例
String.includes()
includes()メソッドが返す文字列に指定された値が含まれている場合はtrue、そうでない場合はfalseを返します。:
String.startsWith()
startsWith()メソッドが返す文字列が指定された値で始まる場合true、そうでない場合はfalseを返します。:
String.endsWith()
endsWith()メソッドは文字列が指定された値で終わる場合はtrue、そうでない場合はfalseを返します。:
Array.from()
Array.from()メソッドは、長さプロパティを持つオブジェクトまたは反復可能なオブジェクトから Arrayオブジェクトを返します。
配列キー()
keys()メソッドは、配列のキーを持つArray Iteratorオブジェクトを返します。
例
配列のキーを含むArray Iteratorオブジェクトを作成します。
配列検索()
find()メソッドは、テスト関数を通過した最初の配列要素の値を返します。
この例では、18より大きい最初の要素を見つけます(その値を返します)。
例
この関数は3つの引数を取ることに注意してください。
- アイテム値
- アイテムインデックス
- 配列自体
配列 findIndex()
findIndex()メソッドは、テスト関数を通過した最初の配列要素のインデックスを返します。
この例では、18より大きい最初の要素のインデックスを見つけます。
例
この関数は3つの引数を取ることに注意してください。
- アイテム値
- アイテムインデックス
- 配列自体
新しい数学メソッド
ES6では、次のメソッドがMathオブジェクトに追加されました。
Math.trunc()Math.sign()Math.cbrt()Math.log2()Math.log10()
Math.trunc() メソッド
Math.trunc(x)は、xの整数部分を返します。
例
Math.sign()メソッド
Math.sign(x)は、xが負、null、または正の場合に返します。
Math.cbrt()メソッド
Math.cbrt(x)は、xの立方根を返します。
Math.log2()メソッド
Math.log2(x)は、xの2を底とする対数を返します。
Math.log10()メソッド
Math.log10(x)は、xの10を底とする対数を返します。
新しい数値プロパティ
ES6では、次のプロパティがNumberオブジェクトに追加されました。
EPSILONMIN_SAFE_INTEGERMAX_SAFE_INTEGER
新しい数値メソッド
ES6では、Numberオブジェクトに2つの新しいメソッドが追加されました。
Number.isInteger()Number.isSafeInteger()
Number.isInteger() メソッド
Number.isInteger()メソッドが返すtrue引数が整数の場合。
Number.isSafeInteger()メソッド
安全な整数は、倍精度数として正確に表現できる整数です。
Number.isSafeInteger()メソッドが返すtrue引数が安全な整数の場合。
例
安全な整数はすべて-(253 - 1)から+(253 - 1)までの整数です。これは安全です: 9007199254740991。 これは安全ではありません: 9007199254740992。
新しいグローバル メソッド
ES6では、2つの新しいグローバル数値メソッドが追加されました。
isFinite()isNaN()
isFinite() メソッド
グローバルなisFinite()メソッドは、引数がInfinityまたはNaNの場合、falseを返します。
それ以外の場合はtrueを返します。:
isNaN()メソッド
グローバルなisNaN()メソッドが返す引数がtrueの場合はNaN。それ以外の場合はfalseを返します。:
オブジェクトのエントリ()
例
配列反復子を作成し、キーと値のペアを反復処理します。
entries()メソッドは、キーと値のペアを持つArray Iteratorオブジェクトを返します。
[0, "バナナ"][1, "オレンジ"][2, "リンゴ"][3, "マンゴー"]
entries()メソッドは元の配列を変更しません。
モジュール
モジュールは2つの異なる方法でインポートされます。
モジュールの詳細については、次のJavaScript モジュールを参照してください。