Spec-Zone.ru › JavaScript

Присваивание с возведением в степень (**=)

Базовый уровень Широко доступно

Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2017 года.

Оператор присваивания с возведением в степень (**=) выполняет возведение в степень двух операндов и присваивает результат левому операнду.

Попробовать

let a = 3;

console.log((a **= 2));
// Expected output: 9

console.log((a **= 0));
// Expected output: 1

console.log((a **= 'hello'));
// Expected output: NaN

Синтаксис

x **= y

Описание

x **= y эквивалентно x = x ** y, за исключением того, что выражение x вычисляется только один раз.

Примеры

Присваивание с возведением в степень с использованием чисел

let bar = 5;
bar **= 2; // 25

Другие значения, не являющиеся BigInt, приводятся к числам:

let baz = 5;
baz **= "foo"; // NaN

Присваивание с возведением в степень с использованием BigInt

let foo = 3n;
foo **= 2n; // 9n
foo **= 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-assignment-operators

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
exponentiation_assignment
52
14
52
39
10.1
52
52
41
10.3
6.0
51
10.3
1.0.0
1.0
7.0.0

Смотрите также

  • Операторы присваивания в руководстве по JS
  • Возведение в степень (**)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Exponentiation_assignment

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API