Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Операторы и циклы
Операторы позволяют выполнить определенные действия с данными. Например, операторы присваивания служат для сохранения данных в переменной, математические операторы позволяют произвести арифметические вычисления, а условные операторы позволяют в зависимости от значения логического выражения выполнить отдельный участок программы или наоборот не выполнять его. Рассмотрим доступные в JavaScript операторы подробно.
Математические операторы
Перечислим математические операторы доступные в JavaScript:
+
— сложение:
console.log( 10 + 15 ); // 25
-
— вычитание:
console.log( 30 - 15 ); // 15
*
— умножение:
console.log( 12 * 10 ); // 120
/
— деление:
console.log( 10 / 2 ); // 5
console.log( 10 / 3 ); // 3.3333333333333335
Деление числа на 0
приведет к значению плюс или минус Infinity
(бесконечность), а деление числа 0
на 0
— к значению NaN
(нет числа):
console.log( 10 / 0 ); // Infinity
console.log( -10 / 0 ); // -Infinity
console.log( 0 / 0 ); // NaN
%
— остаток от деления:
console.log( 10 % 2 ); // 0 (10 - 10 / 2 * 2)
console.log( 10 % 3 ); // 1 (10 - 10 / 3 * 3)
console.log( 10 % 4 ); // 2 (10 - 10 / 4 * 4)
console.log( 10 % 6 ); // 4 (10 - 10 / 6 * 6)
**
— возведение в степень:
console.log( 10 ** 2 ); // 100
console.log( 3 ** 3 ); // 27
console.log( -(3 ** 3) ); // -27
console.log( Math.pow(10, 2) ); // 100
-
— унарный минус:
let x = 10;
console.log( -x ); // -10
+
— унарный плюс (преобразует значение в типnumber
):
let n = '10';
let x = +n;
console.log( x ); // 10
console.log( typeof x ); // number
++
— оператор инкремента. Увеличивает значение переменной на1
:
let x = 10;
x++; // Эквивалентно x = x + 1;
console.log( x ); // 11
--
— оператор декремента. Уменьшает значение переменной на1
:
let x = 10;
x--; // Эквивалентно x = x - 1;
console.log( x ); // 9
Операторы инкремента и декремента могут использоваться в постфиксной или префиксной формах:
x++; x--; // Постфиксная форма
++x; --x; // Префиксная форма
В чем разница? При постфиксной форме (x++
) возвращается значение, которое переменная имела перед операцией, а при префиксной форме (++x
) — вначале выполняется операция и только потом возвращается значение. Продемонстрируем разницу на примере (листинг 4.1).
Листинг 4.1. Постфиксная и префиксная форма
let x = 5, y, msg;
y = x++; // y = 5, x = 6
msg = 'Постфиксная форма (y = x++;):\n';
msg += 'y = ' + y + '\n';
msg += 'x = ' + x + '\n';
x = 5;
y = ++x; // y = 6, x = 6
msg += 'Префиксная форма (y = ++x;):\n';
msg += 'y = ' + y + '\n';
msg += 'x = ' + x;
console.log(msg);
В итоге получим следующий результат:
Постфиксная форма (y = x++;):
y = 5
x = 6
Префиксная форма (y = ++x;):
y = 6
x = 6
Если операторы инкремента и декремента используются в сложных выражениях, то понять, каким будет результат выполнения выражения становится сложно. Например, каким будет значение переменной y
после выполнения этих инструкций?
let x = 5, y = 0;
y = ++x + ++x;
Чтобы облегчить жизнь себе и всем другим программистам, которые будут разбираться в программе, операторы инкремента и декремента лучше использовать отдельно от других операторов.
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов