Оператор возведения в степень(**) в JavaScript

В этом руководстве вы узнаете, как использовать оператор возведения в степень( ** ) в JavaScript для возведения числа в степень.

Чтобы возвести число в степень, вы часто используете статический метод Math.power() со следующим синтаксисом:

Math.pow(base, exponent)

Например:

let result = Math.pow(2,2); 
console.log(result); // 4
 
result = Math.pow(2,3); 
console.log(result); // 8

ECMAScript 2016 предоставил альтернативный способ получить основание степени экспоненты с помощью оператора возведения в степень( ** ) со следующим синтаксисом:

x**n

Оператор ** возводит x в степень n.

Обратите внимание, что в некоторых языках для возведения в степень используется символ вставки ^. Однако JavaScript уже использует этот символ для побитового логического оператора XOR.

В следующем примере показано, как использовать оператор возведения в степень( ** ):

let result = 2 ** 2; 
console.log(result); // 4
 
result = 2 ** 3; 
console.log(result); // 8

И Math.pow(), и оператор ** принимают значения number типа. Однако оператор ** также принимает числа типа bigint. Например:

let result = 2n ** 3n; 
console.log(result); // 8n

Кроме того, вы можете использовать оператор возведения в степень( ** ) в инфиксной нотации. Например:

let x = 2; 
x **= 4; 
console.log(x); // 16

JavaScript не позволяет помещать унарный оператор непосредственно перед базовым числом. Если вы попытаетесь это сделать, вы получите SyntaxError.

Следующий пример вызывает синтаксическую ошибку:

let result = -2**3;

Ошибка:

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

Чтобы исправить это, используйте круглые скобки следующим образом:

let result =(-2)**3; 
console.log(result); // -8
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript