Увеличение или уменьшение переменной на единицу является одной из наиболее частых операций в JavaScript. Указанная операция выполняется с помощью специальных операторов:
- инкремент ( ++ ) увеличивает переменную на 1;
- декремент ( - - ) уменьшает на 1.
Операторы инкремент и декремент можно применить только к переменной. Попытка использовать его на числовом значении (например, 5++), приведёт к ошибке "
.
Операторы инкремента ++ и декремента - - могут быть расположены:
- после переменной - постфиксная форма: counter++ (постинкремент), counter- - (постдекремент);
- до переменной - префиксная форма: ++counter (преинкремент), - -counter (предекремент).
Префиксная форма на текущей строке возвращает новое значение, постфиксная форма на текущей строке возвращает старое (до увеличения или уменьшения числа).
Например:
1 2 3 |
let n = 10; console.log(n++); // 10 - постфиксная форма вернула старое значение console.log(n); // 11 |
Сравните:
1 2 3 |
let n = 10; console.log(++n); // 11 - префиксная форма вернула новое значение console.log(n); // 11 |
Инкремент и декремент можно использовать внутри любых выражений, причем их приоритет выше, чем у арифметических операций.
Например:
1 2 3 |
let n = 10; console.log(2*++n); // 22 console.log(n); // 11 |
Однако подобная запись затрудняет чтение кода (не очевидно, что переменная n увеличивается). Поэтому в данном случае лучше использовать стиль «одна строка – одно действие»:
1 2 3 4 |
let n = 10; ++n; console.log(2 * n); // 22 console.log(n); // 11 |