Операторы и циклы

Операторы позволяют выполнить определенные действия с данными. Например, операторы присваивания служат для сохранения данных в переменной, математические операторы позволяют произвести арифметические вычисления, а условные операторы позволяют в зависимости от значения логического выражения выполнить отдельный участок программы или наоборот не выполнять его. Рассмотрим доступные в 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;

Чтобы облегчить жизнь себе и всем другим программистам, которые будут разбираться в программе, операторы инкремента и декремента лучше использовать отдельно от других операторов.

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов