Уявіть, що Наруто вперше намагається використовувати Техніку Тіньового Клона — він створює тисячу клонів, але половина з них розбігається в різні боки. Ось таке саме відчуття, коли ви працюєте з var
у JavaScript.
Цей пост — ваш перший крок до освоєння JavaScript No Jutsu: навчитися правильно оголошувати змінні, аби не допустити хаосу у вашому коді.
Змінна в програмуванні — це як сувій, в якому зберігається інформація.
let ninja = "Naruto";
Ось і все. Ви створили змінну ninja
, яка містить значення "Naruto"
. Просто, правда? Тепер розглянемо три способи створення змінних у JavaScript і чому тільки два з них реально корисні.
Знайомство з трьома способами
var
– проблемний учень
Це старий спосіб створення змінних у JavaScript. Він працює, але має свою специфіку.
var village = "Leaf";
if (true) {
var village = "Sound";
}
console.log(village); // "Sound"
Попри те, що змінна village
була змінена всередині блоку if
, це переписало значення і зовні. Чому? Тому що var
ігнорує блокові області видимості.
var
— це як перша спроба Наруто з Тіньовим Клоном: клони множаться неконтрольовано і захоплюють усе навколо (ваш код). let
і const
— це вдосконалені техніки: дисципліновані клони, які зникають після виконання місії (блокова область видимості).
let
– сучасний стандарт
Використовуйте це, коли змінна може змінюватися.
let sensei = "Kakashi";
sensei = "Jiraiya"; // абсолютно нормально
Ось чому let
кращий за var
: він враховує блокові області видимості, тому змінні залишаються в межах блоку.
let team = "Team 7";
if (true) {
let team = "Team 10";
console.log(team); // "Team 10"
}
console.log(team); // "Team 7"
З набагато кращим контролем ваші клони залишаються у межах місії.
const
— заблокована змінна
Використовуйте це, коли значення змінної не повинно змінюватися.
const village = "Leaf";
village = "Mist"; // виникає помилка
Але є нюанс: const
не заморожує вміст змінної, а лише саму змінну.
const team = ["Naruto", "Sakura"];
team.push("Sasuke"); // працює нормально
console.log(team); // ["Naruto", "Sakura", "Sasuke"]
Отже, const
не означає заморожену змінну. Це означає, що ви не можете змінити саму змінну, але можете змінювати вміст.
Яку з них використовувати?
Чесно кажучи:
- Використовуйте const за замовчуванням.
- Використовуйте let тільки, коли потрібно змінювати значення.
- Уникайте var, якщо тільки ви не виправляєте старий код.
Швидке завдання
Що виведе цей код?
const jutsu = ["Rasengan"];
jutsu.push("Shadow Clone");
console.log(jutsu);
Відповідь: ["Rasengan", "Shadow Clone"]
Так, масиви, створені за допомогою const
, можна модифікувати.
Підсумок
Тепер ви знаєте, як правильно оголошувати змінні та уникати хаосу з var
. Відмінна робота!
Перекладено з: Shadow Clones & Variables: let, const, var