MENU

JavaScript構文

【JavaScript】 べき乗(同じ数を累乗する)の演算子

更新日:2021/09/16

 

 

54は5を4回掛け算したもので、累乗とよびます。
そして4回の部分が、マイナスや分数など自然数以外にも範囲を広げたものをべき乗と呼ぶそうです。

 

累乗なら繰り返し掛け算すれば計算できますが、べき乗は難しそうです。

 

そこで、JavaScriptでべき乗を計算する方法をお伝えします。

 

このページの目次
  1. ES2016以前
  2. べき乗演算子

ES2016以前

 

元々JavaScriptにはMath.pow()が用意されていて、これを使用するとべき乗計算ができます。

 

Math.powの構文

 

aをb回かけ合わせる


Math.pow( a , b )

 

Math.pow( 5 , 3 )
→125

Math.pow( 5 , -3 )
→0.008

Math.pow( 2 , 0.5 )
→1.4142135623730951

べき乗演算子

 

古いバージョンのJavaScriptでは存在していませんでしたが、現在ではべき乗をおこなう演算子が導入されています。

 

べき乗演算子

 


**  (アスタリスク2つ)

 

5 ** 3
→125

5 ** -3
→0.008

2 ** 0.5
→1.4142135623730951

 

このべき乗演算子は、 - の扱いが難しいです。

 

次の例を実行すると、エラーになります。

 

エラー例

 


const n = 5;
console.log( -n ** 4 );
// SyntaxError: unparenthesized unary expression can't appear on the left-hand side of '**'

 


console.log( -5 ** 4 );
// SyntaxError: unparenthesized unary expression can't appear on the left-hand side of '**'

 

エラー内容を翻訳すると、次のようになります。

 

「括弧で囲まれていない単項式は、「**」の左側には表示できません。」

 

どうやら右側の数値は、 - を付けてもいいようです。

 

これはOK


console.log( 5 ** -4 ); // 0.0016

 

演算子の優先順位は、-の方が高いです。
そのため-5を4回掛け算するように解釈されるべきです。

 

しかし他の言語で優先順位が異なるものがあるようです。
そのためプログラム作成者の意図が、左側の数値に適用するのか、それともべき乗結果に適用するのかあいまいになるため、制限されているようです。

 

そういうものだと思って、( )で優先順位を明確にしてあげましょう。

 

これはOK


console.log( (-5) ** 4 ); // 625 ← - 5 を 4回かける
console.log( - ( 5 ** 4 ) ); // -625 ← 5 を 4回かけた後、-を適用

 

 

■実際には - だけでなく、 + 、 ~ 、 ! 、delete 、void 、typeof などの単項演算子も制限されます。

けーちゃんおススメJavaScript入門書

  • スラスラ読める JavaScript ふりがなプログラミング
  • プログラム未経験者がJavaScript始めるならコレ!
    コードを掲載して自分で理解しろという投げっぱなしな入門書とは異なり、コードに一つ一つどんなことをやっているかをふりがなという形式で解説しています。
    それでいてJavaScriptの基礎と応用を学べる良書です。
  • これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん
  • JavaScriptの機能を実践で活かすにはHTMLやCSSの知識が不可欠です。
    しかしそれらの知識があることが前提として書かれている書籍が多い中、この本は総合的な知識を身に着けることができます。
    HTMLやCSSの知識も不安な方には、ぴったりの一冊です
  •  

    入門書の役割は、自分のやりたいことをネットで調べることができるようになるための、基礎的な知識の獲得です。
    まずはこれらの本でしっかりと基礎知識を身につけましょう。
    そしてもっと高度なことや専門的なことはネットで調べ、情報が足りないと感じたら書籍を購入してください。


    記事の内容について

     

    こんにちはけーちゃんです。
    説明するのって難しいですね。


    「なんか言ってることおかしくない?」
    たぶん、こんなご意見あると思います。

    裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。

    そんなときは、ご意見もらえたら嬉しいです。

    ご意見はこちら。
    https://note.affi-sapo-sv.com/info.php

    【お願い】

    お願い

    ■このページのURL


    ■このページのタイトル


    ■リンクタグ


    ※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
    サイト上部の問い合わせよりご連絡ください。
    ただしサイトのジャンルによっては、お断りさせていただくことがあります。