В чем разница между i++ и ++i

«В чем разница между i++ и ++i» — вопрос из категории JavaScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Разница в порядке выполнения операций:

  1. i++ (постфиксный инкремент) - сначала возвращает текущее значение, затем увеличивает переменную на 1.
  2. ++i (префиксный инкремент) - сначала увеличивает переменную на 1, затем возвращает новое значение.

Пример:

let i = 5;
console.log(i++); // 5 (вывели, потом увеличили)
console.log(i);   // 6

let j = 5;
console.log(++j); // 6 (увеличили, потом вывели)
console.log(j);   // 6

В циклах for разницы нет, так как инкремент выполняется после итерации. Но в выражениях и при присваивании поведение разное. Префиксная форма обычно немного быстрее, так как не требует сохранения промежуточного значения.