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 залишаються важливими для розуміння спадкових кодових баз.
- Порада
-
Не покладайтеся на
автор: Bondundefinedдля перевірки існування змінної, оголошеної черезvar. Змінна може бути піднята, навіть якщо ще не ініціалізована. - Порада
-
Коли оголошуєте змінну глобально через
автор: Bondvar, пам’ятайте, що вона додається до об'єктаwindow. Це може створити конфлікти з іншими глобальними змінними. - Порада
-
При використанні старого коду, де активно застосовується
автор: Bondvar, перевіряйте наявність дублювання змінних.varдозволяє повторно оголошувати змінні в одній області видимості, що може викликати помилки.
Синтаксис
var ім’я_змінної = значення;
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі видно, як змінна x, оголошена через var, не має блочної області видимості, що може призводити до помилок у великих функціях.
function testVarScope() {
var x = 10;
if (true) {
var x = 20; // Перезаписує x у функціональній області
console.log(x); // 20
}
console.log(x); // 20 - значення змінилося через функціональну область
}
testVarScope();
Завдяки підняттю змінна a стає відомою інтерпретатору на початку функції, але до її ініціалізації значення залишається undefined. Це важливо враховувати при налагодженні коду.
function hoistingExample() {
console.log(a); // undefined
var a = 5;
console.log(a); // 5
}
hoistingExample();
При натисканні кнопки "Збільшити лічильник" значення змінної counter, оголошеної через var, збільшується, і воно відображається на сторінці. Кнопка "Скинути" встановлює значення counter у 0. Завдяки функціональній області видимості var, змінна доступна в обох обробниках подій. Цей приклад демонструє, як var може бути корисним для створення лічильників у простих сценаріях.
Коментарі
Коментарів ще немає — будьте першим!