Frontender Magazine

Новая возможность языка в ES2016: оператор возведения в степень (**)

Оператор возведения в степень (**) — это дополнение для ECMAScript, предложеннное Риком Валдроном (Rick Waldron). Оно находится на четвертой стадии процесса формирования релизов, то есть полностью готово, и является частью спецификации ECMAScript 2016.

Инфиксный оператор для возведения в степень

** — это инфиксный оператор для возведения в степень:

x ** y

он вернёт тот же результат, что и:

Math.pow(x, y)

Например:

let squared = 3 ** 2; // 9

let num = 3;
num **= 2;
console.log(num); // 9

Материалы для дальнейшего чтения:

Если вы заметили ошибку, вы всегда можете отредактировать статью, создать issue или просто написать об этом Антону Немцеву в skype ravencry.

Axel Rauschmayer
Автор:
Axel Rauschmayer
GitHub:
rauschma
Twitter:
@rauschma
Сaйт:
http://rauschma.de/
Email:
axel@rauschma.de
Антон Немцев
Переводчик:
Антон Немцев
Сaйт:
http://frontender.info/
Twitter:
@silentimp
GitHub:
SilentImp
Skype:
ravencry

Комментарии (5 комментариев, если быть точным)

Автар пользователя
MagistrAVSH

Ну ура, что тут сказать.

Автар пользователя
SilentImp

@MagistrAVSH ты тоже любишь повозводить в степень долгими осенними вечерами? Теперь мы можем делать это более эффективно! Я бы даже сказал — эффектно.

Автар пользователя
P0jar

С этим нововведением я увидел свет в своей жизни.

Хотя, если отбросить колкости, то на тему эту можно кое-что подумать. Так или иначе, методы, даже простые, в не простом коде всегда некий штык, на который натыкается глаз юнного кодера. В то время как x ** y так же очевидно как и x + y и радует глаз.

Автар пользователя
subzey

Надо заметить, что в отличие от остальной математики в JS, ** имеет правую ассоциативность. Иными словами, a - b - c === (a - b) - c, но a ** b ** c === a ** (b ** c)

Автар пользователя
lxmarduk

Даже не представляю как я раньше жил без этого замечательного оператора. Это первая must have фича языка. Seriously?!