В JavaScript вы можете создавать простые математические выражения, используя +, -. *, / и % для сложения, вычитания, умножения, деления и нахождения остатка (модуля) чисел соответственно. Если вы умеете пользоваться калькулятором, то сможете производить простые вычисления и в JavaScript.
Вот некоторые примеры с применением перечисленных операторов:
let total = 4 + 26;
let average = total / 2;
let doublePi = 2*3.14159;
let subtractItem = 50–25;
let remainder = total % 7;
let more = (1 + average * 10) / 5;
Обратите внимание, что в последней строке я определяю фиксированный порядок выполнения операций, заключая в скобки выражение, которое хочу вычислить как группу. Опять же это все уровень калькулятора.
JavaScript производит вычисление выражений в следующем порядке:
1. Скобки.
2. Экспоненты.
3. Умножение.
4. Деление.
5. Сложение.
6. Вычитание.
Для запоминания этого порядка иногда используют соответствующие мнемонические схемы. В начальных классах меня научили вот такому: Please Excuse My Dear Aunt Sally[2].
Увеличение и уменьшение
Нередко в отношении чисел вы будете производить увеличение и уменьшение переменной на определенную величину. Ниже представлен пример увеличения переменной i на 1:
let i = 4;
i = i + 1;
Вам не обязательно увеличивать или уменьшать именно на 1. Вы можете использовать произвольное число:
let i = 100;
i = i — 2;
При этом также не обязательно использовать именно сложение или вычитание. Вы можете выполнять и другие операции:
let i = 100;
i = i / 2;
Здесь стоит разглядеть шаблон. Независимо от того, какой оператор используете, вы заметите, что всегда изменяете переменную i. В связи с частым использованием этого шаблона существуют специальные операторы для упрощения процесса (табл. 16.1).
Табл. 16.1. Операторы, упрощающие увеличение и уменьшение
Выражение
Действие
i++
Увеличивает i на 1 (i = i + 1)
i —
Уменьшает i на 1 (i = i — 1)
i += n
Увеличивает i на n (i = i + n)
i — = n
Уменьшает i на n (i = i — n)
i *= n
Умножает i на n (i = i * n)
i /= n
Делит i на n (i = i / n)
i %= n
Находит остаток i при делении на n (i = i % n)
i **= n
Экспоненциальный оператор, где i возводится в степень n
Если я использую эти операторы для трех примеров, приведенных ранее, то код будет выглядеть так:
i++;
i — = 2;
i /= 2;
Прежде чем мы здесь закончим, есть одна хитрость, о которой вам следуем знать. Она касается операторов — и ++ для увеличения и уменьшения значения на 1. Тут важно определить оператор перед переменной или после нее.
Рассмотрим пример:
let i = 4;
let j = i++;
После выполнения этих двух строк значением i будет 5, как вы и могли ожидать. Значением j будет 4. Обратите внимание, что в этом примере оператор используется после переменной.
Если же мы расположим его перед ней, то результат будет несколько иным:
let i = 4;
let j = ++i;
В этом случае значением i по-прежнему будет 5. Но при этом удивительным образом значением j теперь также будет 5.
Эти два примера отличаются лишь расположением оператора, которое определяет, будет ли возвращено увеличенное значение или значение, имевшееся до увеличения.
Шестнадцатеричные и восьмеричные значения
Помимо обычных десятичных значений вы можете использовать шестнадцатеричные (основание 16) и восьмеричные (основание 8). При работе с восьмеричными обязательно начинайте числа с 0:
let leet = 0°2471;
При использовании шестнадцатеричных начинайте с 0х:
let leet = 0x539;
Во многих ситуациях придется взаимодействовать с этими значениями в форме строк. В связи с этим вы уже не сможете манипулировать ими, как обычными числами. Для начала потребуется преобразовывать эти строки в числа.
Делается это с помощью функции parseInt:
2
Аббревиатура PEMDAS (