べき乗をするならMath.pow()よりもExponentiation Operatorが手軽(ES2016新機能)


2016/06/17、JavaScriptの仕様「ECMAScript」の最新バージョンECMAScript 2016(※)がリリースされました。ES2016で追加された機能は2つです。

  • Exponentiation(**) Operator
  • Array.prototype.includes()メソッド

本エントリーでは、Exponentiation(**) Operatorについて解説します。Array.prototype.includes()メソッドについてはこちらの記事で解説しています。
配列内の要素の存在確認にはArray.includes()メソッドが便利

※ 言語仕様書:「ECMAScript® 2016 Language Specification

Exponentiation Operatorはべき乗計算のための新しいオペレータ

これまでJavaScriptでべき乗計算(2の3乗や、4の8乗などの計算のこと)は、Math.pow()を使って行っていました。

// 2の3乗算
Math.pow(2, 3);
// 4の8乗算
Math.pow(4, 8);

▲ Google Chromeでの計算結果

Exponentiation Operatorは、**を記述することで、このべき乗計算をシンプルに書けるようになります。ちなみに「Exponentiation」が「べき乗」という意味です。

では、先ほどの計算を書き換えてみましょう。

// 2の3乗算
2 ** 3;
// 4の8乗算
4 ** 8;

▲ Google Chromeでの計算結果

Math.pow()を使うよりもシンプルな記述で可能なことがわかります。

また、次のような記述も可能です。

// 変数aに2を代入する。
let a = 2;
// aの3乗を得る。
a **= 3;

▲ Google Chromeでの計算結果

便利ですね。

対応ブラウザは?

2018/02/06時点では、IE 11を除く全主要ブラウザで対応しています。

参考:ECMAScript Next compatibility table

IE 11でも対応する必要がある場合は、TypeScriptやBabelを経由するのがおすすめです。