Піднесення до степеня (**)

Оператор піднесення до степеня (**) повертає результат піднесення першого операнду до показника степеня другого операнду.

Синтаксис

Оператор: var1 ** var2

Опис

Оператор піднесення до степеня правоасоціативний. a ** b ** c дорівнює a ** (b ** c).

У більшості мов, таких як PHP, Python та інших, які мають оператор піднесення до степеня (**), оператор піднесення до степеня має вищий пріоритет, ніж унарні оператори, такі як унарний + та унарний -, але існує кілька винятків. Наприклад, у Bash оператор ** має нижчий пріоритет, ніж унарні оператори.

У JavaScript неможливо написати неоднозначний вираз піднесення до степеня, тобто, ви не можете поставити унарний оператор (+/-/~/!/delete/void/typeof) одразу перед числом основи степеня.

-2 ** 2;
// 4 у Bash, -4 у інших мовах.
// Це помилка JavaScript, оскільки операція неоднозначна.


-(2 ** 2);
// -4 у JavaScript, а наміри автора однозначні.

Зауважте, що деякі мови програмування використовують символ карет ^ для піднесення до степеня, але JavaScript використовує цей символ як оператор виключного побітового АБО (XOR).

Приклади

Базове піднесення до степеня

2 ** 3   // 8
3 ** 2   // 9
3 ** 2.5 // 15.588457268119896
10 ** -1 // 0.1
NaN ** 2 // NaN

Асоціативність

2 ** 3 ** 2   // 512
2 ** (3 ** 2) // 512
(2 ** 3) ** 2 // 64

Використання з унарними операторами

Щоб змінити знак результату виразу піднесення до степеня на протилежний:

-(2 ** 2) // -4

Щоб зробити основу степеня у виразі від'ємним числом:

(-2) ** 2 // 4

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також