Розділ 1: var
– Стара коробка
Це як стара, магічна коробка для іграшок, яка може поводитись непередбачувано. Ви можете покласти іграшки всередину, забрати їх або навіть замінити коробку на іншу — але іноді вона створює проблеми, бо не слухається правил, де її можна використовувати.
Урок: var
не поважає «кімнати» (блоки коду). Вона може вирватися й все зіпсувати!
Розділ 2: let
– Ввічлива коробка
Це ввічлива, сучасна коробка. Вона працює лише в тій кімнаті (блоці), де ви її поклали. Ви можете змінювати іграшку всередині, але коробка не виходить за межі своєї кімнати.
Урок: let
поважає свої межі та залишається в своїй кімнаті. Вона безпечніша і з нею простіше працювати.
Розділ 3: const
– Спеціальна коробка
Це найбільш строгий варіант коробки. Як тільки ви покладете іграшку всередину, ви не зможете її замінити. Але якщо іграшка — це набір менших іграшок (як Lego), ви можете змінювати частини, але не весь набір.
Урок: const
використовується для речей, які не повинні змінюватися повністю, але частини всередині можуть бути змінені, якщо це дозволено.
Таблиця порівняння:
| Ознака | var
| let
| const
|
| — — — — — — — -| — — — — — — — — — — — — — — -| — — — — — — — — — — — — — | — — — — — — — — — — — — — |
| Область видимості | Функція або глобальна | Блок | Блок |
| Переприсвоєння | Так | Так | Ні |
| Підйом змінної (Hoisting) | Так (ініціалізовано як undefined
) | Так (не ініціалізовано) | Так (не ініціалізовано) |
Висновок:
Завжди використовуйте const
для значень, які не змінюються, та let
, коли необхідно переприсвоєння. Уникайте використання var
, якщо ви не налагоджуєте старий код.
Перекладено з: Explained Like I’m 5: The Difference Between let, const, and var in JavaScript