ECMAScript 2016 (ES7) まとめ

0 件のコメント

今回は「ECMAScript2016 (ES7)」についてまとめます。

ECMAScript 2016 (ES7) ではあまり機能追加されず、以下の2点だけ追加されたようです。 といっても、どちらも利用シーンは多そうな機能なのでぜひ覚えておきたいものです。

Array.prototype.includes()

今まで配列要素に指定した要素が含まれているかどうかを調べようとすると .indexOf() の戻り値が 0以上 であることを確認していました。 これだとコードで意味が分かりづらいので .includes() で読みやすくしようといった流れです。

構文

arr.includes(search [, fromIndex])

配列arr 中に 指定された要素 search が含まれている場合、 true を返します。 それ以外の場合、 false を返します。 fromIndex を指定した場合、そのインデックス以降の要素に対してマッチする要素があるかどうかを返します。

サンプルコード

1
2
3
4
5
6
var arr = ["a", "b", "c"];
console.log(arr.includes("b"));  // -> true
console.log(arr.includes("d"));  // -> false
 
arr[arr.length] = NaN
console.log(arr.includes(NaN));  // -> true

指数演算子

一般的な言語には「指数演算」の演算子が定義されていますが、なぜいか JavaScript には存在しませんでした。 (一応、 Math.pow() はありましたが、演算子(オペレーター)としては存在しませんでした。そこまで使われる言語ではなかった??) ECMAScript2016 (ES7) から ** 演算子 で指数計算ができるようになりました。 あわせて指数演算の算術演算を伴う代入演算( **= )もできるようになっているのはポイントです。

構文

a ** b

上記の計算であれば「ab 乗」を計算できます。 a が底で、b が指数です。

サンプルコード

1
2
3
4
5
6
console.log(arr.includes("d"));  // -> false
console.log(2 ** 4);             // -> 16
 
var a = 2, b = 8;
a **= b;                         // a = a ** b
console.log(a);                  // -> 256

対応状況

2018年10月現在で利用できるのは IE11 以外のブラウザ、Node.js は ver 8 以上で使えるようです。 基本的にはどの環境でも使えると思っていい状況になっています。

コンパイラ ブラウザ ランタイム
Babel 7 Closure 2018.09 IE 11 Edge 18 Firefox 62 Chrome 69 Safari 12 Node.js 8
OK OK NG OK OK OK OK OK

今回は「ECMAScript2016 (ES7)」についてまとめました。 参考になったでしょうか? 本記事がお役に立っていると嬉しいです!!

参考記事

最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!