--- title: Піднесення до степеня (**) slug: Web/JavaScript/Reference/Operators/Exponentiation tags: - JavaScript - Довідка - Оператор translation_of: Web/JavaScript/Reference/Operators/Exponentiation ---
Оператор піднесення до степеня (**) повертає результат піднесення першого операнду до показника степеня другого операнду.
Оператор: 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
| Специфікація |
|---|
| {{SpecName('ESDraft', '#sec-exp-operator', 'Exponentiation operator')}} |
{{Compat("javascript.operators.exponentiation")}}