javascript エラー「Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence」の解決方法

javascript エラー「Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence」の解決方法

javascriptで、エラー「Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence」が発生した場合の原因と解決方法を記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 104.0.5112.101

エラー内容

以下のコードを実行した際に発生。

console.log( -2 ** 5 );

エラーメッセージ

Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. 
Parenthesis must be used to disambiguate operator precedence

画像

firefox102の場合は、以下のエラーが発生します。

Uncaught SyntaxError: unparenthesized unary expression can't appear on the left-hand side of '**'

画像

原因

マイナスにカッコがないため、数値計算にならずにエラーとなります。

解決方法

カッコをつけて使用します。

console.log( (-2) ** 5 ); // -32