Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Інкремент і декремент». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Оператори `++` і `--`** - це **інкремент** і **декремент**, які часто плутають саме через різницю між **префіксною** та **постфіксною** формами. **Ключове:** Префіксна форма (`++i`) спочатку змінює значення і повертає нове, а постфіксна (`i++`) спочатку повертає старе значення і лише потім змінює змінну.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняОператори `++` і `--` - це **інкремент** і **декремент**, і їх часто плутають саме через різницю між **префіксною** та **постфіксною** формами. Розберемо все детально. --- ## Що роблять оператори `++` і `--` | Оператор | Дія | Приклад | |---|---|---| | `++` | збільшує значення змінної на **1** | `i++` → `i = i + 1` | | `--` | зменшує значення змінної на **1** | `i--` → `i = i - 1` | > Але важливо: **залежно від розташування (**`++i` **або** `i++`**)** > результат виразу може бути **різним**. --- ## Префіксна форма (`++i`, `--i`) Спочатку **змінює** значення змінної, а потім **повертає** нове значення. ```javascript let i = 5; let result = ++i; // спочатку i = 6, потім повертається 6 console.log(i); // 6 console.log(result); // 6 ``` > Тобто: > > - Збільшує/зменшує змінну. > - Повертає **нове** значення. --- ## Постфіксна форма (`i++`, `i--`) Спочатку **повертає старе значення**, а потім **змінює змінну**. ```javascript let i = 5; let result = i++; // спочатку поверне 5, потім збільшить i до 6 console.log(i); // 6 console.log(result); // 5 ``` > Тобто: > > - Повертає **старе** значення. > - І лише потім змінює змінну. --- ## Різниця на прикладі ```javascript let a = 1; console.log(a++); // 1 → спочатку виводить, потім збільшує console.log(a); // 2 let b = 1; console.log(++b); // 2 → спочатку збільшує, потім виводить console.log(b); // 2 ``` --- ## У виразах Ця різниця особливо помітна, коли оператор використовується **всередині виразу**: ```javascript let x = 10; let y = x++ + 5; // y = 10 + 5 = 15, потім x = 11 let a = 10; let b = ++a + 5; // a = 11, b = 16 ``` | Форма | Зміна змінної | Значення, що повертається | |---|---|---| | `++i` | Збільшує **одразу** | Нове значення | | `i++` | Збільшує **потім** | Старе значення | | `--i` | Зменшує **одразу** | Нове значення | | `i--` | Зменшує **потім** | Старе значення | --- ## У циклах Зазвичай форма `i++` використовується в циклах, тому що результат виразу не використовується явно: ```javascript for (let i = 0; i < 5; i++) { console.log(i); } ``` > Тут немає різниці між `i++` і `++i`, > тому що значення, яке повертається, не використовується. --- ## Підсумок | Форма | Коли змінює | Що повертає | Приклад результату | |---|---|---|---| | `++i` | Одразу | Нове значення | `let i=1; console.log(++i)` → `2` | | `i++` | Після | Старе значення | `let i=1; console.log(i++)` → `1` | | `--i` | Одразу | Нове значення | `let i=3; console.log(--i)` → `2` | | `i--` | Після | Старе значення | `let i=3; console.log(i--)` → `3` |Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.