JS об'єкт var
Загальний опис
var — це ключове слово в JavaScript, яке використовується для оголошення змінних. На відміну від сучасних let і const, змінні, оголошені за допомогою var, мають деякі особливості, які важливо враховувати.
По-перше, змінні, оголошені через var, мають функціональну область видимості, тобто вони доступні всередині всієї функції, навіть якщо оголошені всередині блоку. Наприклад:
function example() {
if (true) {
var message = "Привіт!";
}
console.log(message); // "Привіт!" - змінна доступна поза блоком.
}
По-друге, якщо змінна оголошується через var поза функцією, вона автоматично стає властивістю глобального об'єкта (window у браузері):
var globalVar = 10;
console.log(window.globalVar); // 10
Ще одна особливість — підняття (hoisting). Змінні, оголошені через var, «піднімаються» на початок своєї області видимості, хоча їх значення залишається невизначеним до моменту присвоєння:
console.log(a); // undefined
var a = 5;
Через це код може працювати неочікувано, якщо розробник не враховує підняття.
Використання var в сучасному JavaScript поступово відходить на другий план через появу більш зрозумілих і безпечних конструкцій let і const. Проте знання про var залишаються важливими для розуміння спадкових кодових баз.
| Порада: | При використанні старого коду, де активно застосовується |
| Порада: | Не покладайтеся на |
| Порада: | Коли оголошуєте змінну глобально через |
Синтаксис
var ім’я_змінної = значення;
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
При натисканні кнопки "Збільшити лічильник" значення змінної counter, оголошеної через var, збільшується, і воно відображається на сторінці. Кнопка "Скинути" встановлює значення counter у 0. Завдяки функціональній області видимості var, змінна доступна в обох обробниках подій. Цей приклад демонструє, як var може бути корисним для створення лічильників у простих сценаріях.
Завдяки підняттю змінна a стає відомою інтерпретатору на початку функції, але до її ініціалізації значення залишається undefined. Це важливо враховувати при налагодженні коду.
function hoistingExample() {
console.log(a); // undefined
var a = 5;
console.log(a); // 5
}
hoistingExample();
У цьому прикладі видно, як змінна x, оголошена через var, не має блочної області видимості, що може призводити до помилок у великих функціях.
function testVarScope() {
var x = 10;
if (true) {
var x = 20; // Перезаписує x у функціональній області
console.log(x); // 20
}
console.log(x); // 20 - значення змінилося через функціональну область
}
testVarScope();
