LoginSignup
5
1

More than 1 year has passed since last update.

ES7 ECMAScript 2016 入門

Last updated at Posted at 2021-06-20

はじめに

今回ですが個人的にES7以降の新機能や構文で追えていない知識がありましたので、自分用のメモとして記述します。今更感も否めないですがそこはご了承くださいませ🙇‍♂️
また、今回はES7のみですが、次回以降でES8以降の機能も順番に書いていきたいと思います。

そもそもECMAScriptって?

最初ですので簡単にECMAScriptに触れておきます。
ECMAScriptは、European Computer Manufacturer Associationの略称で、Ecma Internationalによって標準化されたJavaScriptを実装する上での仕様です。ES6(ECMAScript 2015)以降は、毎年6月に公開され、正式な仕様となっております。

  • ECMAScriptのバージョン(ES6以降)
バージョン 略称(通称) 公開日
ECMAScript 2015 ES2015(別名ES6) 2015年6月
ECMAScript 2016 ES2016(別名ES7) 2016年6月
ECMAScript 2017 ES2017(別名ES8) 2017年6月
ECMAScript 2018 ES2018(別名ES9) 2018年6月
ECMAScript 2019 ES2019(別名ES10) 2019年6月
ECMAScript 2020 ES2020(別名ES11) 2020年6月

ES2016(ES7) の新機能

では、早速本題に入ります。
ES7で追加された新機能は主に下記の2つです。

  • Array.prototype.includes()メソッド
  • べき乗演算子

・Array.prototype.includes()メソッド

まずはArray.prototype.includes()メソッドについてみていきます。
includes()は、配列内に特定の要素が含まれているかどうかを真偽値で返してくれるメソッドです。要素が含まれていればtrue、含まれていなければfalseとなります。

【例】

const array = ['要素1','要素2','要素3'];

console.log(array.includes('要素1')); // => true

また、includesメソッドは第2引数に配列内で探し始める位置をインデックスで指定することができます。(下記参照)

【構文】

arr.includes(valueToFind[, fromIndex])

【例1】

const array = ['要素1','要素2','要素3'];

console.log(array.includes('要素1', 3)); // => false

上記の例はインデックスに3を指定していますが、配列内の要素は3つ(インデックス番号が2まで)しかないのでfalseが返ります。

【例2】

const array = ['要素1','要素2','要素3'];

console.log(array.includes('要素3', -1)); // => true

また、上記の例はインデックスに負の数を指定すると、その絶対値の数だけ配列の末尾から戻った位置が検索開始地点となりますのでtrueが返ります。

・べき乗演算子

続いてべき乗演算子について記述します。
べき乗演算子は、1番目のオペランドを2番目のオペランドの累乗まで上げた結果を返す演算子です。簡単にいうと累乗計算ですね。こちらは例を見て頂いた方がわかりやすいかと思います。

【構文】

Operator: var1 ** var2

【例1】

console.log(2 ** 2); // => 4
console.log(2 ** 3); // => 8
console.log(1 ** -1); // => 1
console.log(NaN ** 1); // => NaN

NaNは、累乗してもNaNになります。

【例2】

console.log(2 ** 3 ** 2); // 512
console.log(2 ** (3 ** 2)); // 512
console.log((2 ** 3) ** 2); // 64

べき乗演算子は右結合的の為、a ** b ** c と a ** (b ** c) は等しいべき乗式となります。優先順位と異なる順に計算したい場合は、丸カッコを用いて計算順序を明示します。

はい、今回はここまでとさせて頂きます✍️

おわりに

ES7はES6に比べる新機能のボリュームは少ないですが、特にArray.prototype.includes()メソッドは個人的に実務で使える場面が多くありますので大変ありがたいメソッドです🙇‍♂️また、ES8については次回以降で書きます。

参考文献


MDN Web Docs

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1