Выбрать главу

В 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 (Parentheses, Exponents, Multiplication, Division, Addition, Subtraction) переводится как: «Простите мою дорогую тетушку Салли». По-русски PEMDAS будет ССУДСВ (скобки, степень, умножение, деление, сложение, вычитание). Читатели могу придумать собственные мнемонические уловки. — Примеч. ред.