Я всегда находил старый способ написания выражения возведения в степень немного неудобным. К счастью, появился оператор возведения в степень. Этот синтаксис также делает его более похожим на другие языки (например, Ruby, Python). Круто 👍
// Old way const old = Math.pow(3, 7); // 2187
// ✅ ES7 way const es7 = 3 ** 7; // 2187
Обозначение инфиксов
Использование **
называется инфиксной нотацией. Он характеризуется размещением операторов между операндами. Другие популярные инфиксные обозначения включают: +
или -
.
Причина, по которой был введен этот синтаксис, заключается в том, что:
Инфиксная нотация более лаконична, чем нотация функций, что делает ее более предпочтительной
Экспоненциация на других языках
Кроме того, вы заметите, что этот синтаксис очень похож на другие языки:
// Python a ** b
// Ruby a ** b
// Perl a ** b
// F# a ** b
Мне действительно нравится, что он похож на другие языки. Потому что это значительно упрощает освоение JavaScript для этих людей, и они могут быть запущены очень быстро.
Оператор присваивания
Вы, должно быть, видели арифметический оператор в сочетании с оператором присваивания. Например +=
:
a += b
// Same as // a = a + b
Точно так же это можно сделать и с оператором возведения в степень. **=
:
a **= b
// Same as // a = a ** b
Отрицательная база
Есть одна небольшая проблема. Когда у вас есть отрицательная база, вам придется заключить ее в круглые скобки.
// ❌ Syntax Error const wrong = -3 ** 7;
// ✅ const correct = (-3) ** 7;
Однако это не проблема, если вы используете более старый способ работы.
const works = Math.pow(-3, 7);
Ресурсы
- Веб-документы MDN: Math.pow
- Веб-документы MDN: Возведение в степень **
- W3schools: JS Assignment
- 2ality: Оператор возведения в степень
- ExploringJS: оператор возведения в степень
- TC39: Оператор возведения в степень
- Оператор возведения в степень в JavaScript
- Оператор возведения в степень
- Википедия: инфиксная нотация
Делиться
- Нравится в Твиттере
- Нравится в Instagram
- Первоначально опубликовано на www.samanthaming.com.
Спасибо за чтение ❤
Сказать привет! Instagram | Facebook | Твиттер | SamanthaMing.com | Блог