++i проти i++ в Javascript

1 хв. читання

Там де є i там є маленька, але важлива відмінність між ++i та i++, що може завдати достатньо головного болю, якщо не бути обережним. Спробуйте це:

var i = 5;
i++;
console.log(i); //=> 6
++i;
console.log(i); //=> 7

Як і очікувалось, обидві версії інкерментують і. Різниця з'являється тоді, коли вирази реально щось виконують. Якщо ми внесемо маленьку зміну, ми отримаємо кардинально інший результат:

var i = 5;
console.log(i++); //=> 5
console.log(i); //=> 6

Це означає, що значення і не актуальне доки не виконається console.log(). Це може бути особливо каверзним якщо ви робите порівняння:

var i = 5;
console.log(++i === i++) //=> false

З іншого боку, ++i виконується перед тим, як будь яка операція його викличе:

var i = 5;
console.log(++i)// => 6

Тож що робити? Не використовуйте обидва! Використовуйте i += 1. Його поведінка більш передбачувана і ви не сплутаєте його ні з чим іншим!

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація