dr.Brain

doctor Brain

мир глазами веб-разработчика

JavaScript: инкремент и декремент

операторы инкремента и декремента в JavaScript

dr.Brain

время чтения 1 мин.

Photo by Bharat Patil on Unsplash

Итак, вопрос: выражения ++x и x++ одинаковы или нет? Если ответить коротко - и да, и нет.

Синтаксис

  1. инкремент: ++x или x++,
  2. декремент: --x или x--.

Рассмотрим пример:

// Case 1
let x1 = 0;
x1++;
x1++;
x1++;
console.log(x1); //3  ok

// Case 2
let x2= 0;
++x2;
++x2;
++x2;
console.log(x2); //3  ok

// Case 3
let x3= 1;
console.log(x3++);    // 1 !!! Что случилось?
console.log(x3);      // 2 ok

// Case 4
let x4= 1;
console.log(++x4);    // 2 ok
console.log(x4);      // 2 ok

Что же случилось в третьем примере.

Мы видим, что при выводе console.log(x3++); значение переменной x3 не изменилось - это произошло потому, что значение операнда при использовании постфиксного инкремента (как и декремента) возвращается до его изменения.

В следующей строке кода console.log(x3); мы вывели значение переменной, которое уже изменилось в предыдущей строке.

Если обратиться к четвертому примеру, console.log(++x4); выведет уже измененное значение - это особенность использования префиксных операторов инкремента и декремента: значение переменной сначала изменяется, а потом выводится.

Еще раз обратимся к примерам, но теперь уже с операторами декремента:

// Case 5
let x5= 1;
console.log(x5--);    // 1 !!! What happens?
console.log(x5);      // 0

// Case 6
let x6= 1;
console.log(--x6);    // 0 ok
console.log(x6);      // 0 ok

Надеюсь, это материал будет полезен начинающим разработчикам.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.