此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
指數運算子(**)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017年3月.
指數運算子(**)會回傳以第一個數字作為底數;第二個數字做為指數的運算結果。
它類同於Math.pow,不一樣的是** 可以用於 BigInt 的計算而Math.pow 不行。
In this article
嘗試一下
console.log(3 ** 4);// Expected output: 81console.log(10 ** -2);// Expected output: 0.01console.log(2 ** (3 ** 2));// Expected output: 512console.log((2 ** 3) ** 2);// Expected output: 64語法
js
x ** y簡介
指數運算子是 right-associative:a ** b ** c 相當於a ** (b ** c)。
在絕大多數的程式語言,例如 PHP、Python……等等,指數運算的優先順序比一元運算子(+ 或- )較高。但並非所有程式語言均是如此。
舉例來說,在 Bash,** 的優先順序就低於一元運算子。
在 Javascript,模棱兩可的求冪運算式。說得清楚一點,+/-/~/!/delete/void/typeof 這類一元運算子均不能置於底數之前,否則會出現SyntaxError。
js
-2 ** 2;// 在 Bash 的結果為 4;其他語言則為 -4// 在 JavaScript 則是被視為語意不明。-(2 ** 2);// 在 Javascript 就會得出 -4。這種寫法的語意就很明確注意,在部分語言之中,指數運算採用插入符號^ ,但是在 Javascript ,^ 則是用於XOR 位元邏輯運算子.
範例
>指數的基本運算
js
2 ** 3; // 83 ** 2; // 93 ** 2.5; // 15.58845726811989610 ** -1; // 0.1NaN ** 2; // NaN連續使用
js
2 ** (3 ** 2); // 5122 ** (3 ** 2); // 512(2 ** 3) ** 2; // 64與一元運算子一同使用
反轉指數運算結果之正負:
js
-(2 ** 2); // -4計算底數為負數的指數運算:
js
(-2) ** 2; // 4規範
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-exp-operator> |