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 залишаються важливими для розуміння спадкових кодових баз.

автор: Bond

Порада

Не покладайтеся на undefined для перевірки існування змінної, оголошеної через var. Змінна може бути піднята, навіть якщо ще не ініціалізована.

автор: Bond
Порада

Коли оголошуєте змінну глобально через var, пам’ятайте, що вона додається до об'єкта window. Це може створити конфлікти з іншими глобальними змінними.

автор: Bond
Порада

При використанні старого коду, де активно застосовується var, перевіряйте наявність дублювання змінних. var дозволяє повторно оголошувати змінні в одній області видимості, що може викликати помилки.

автор: Bond

Синтаксис

var ім’я_змінної = значення;

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
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();
автор: Bond

Завдяки підняттю змінна a стає відомою інтерпретатору на початку функції, але до її ініціалізації значення залишається undefined. Це важливо враховувати при налагодженні коду.

function hoistingExample() {
    console.log(a); // undefined
    var a = 5;
    console.log(a); // 5
}

hoistingExample();
автор: Bond

При натисканні кнопки "Збільшити лічильник" значення змінної counter, оголошеної через var, збільшується, і воно відображається на сторінці. Кнопка "Скинути" встановлює значення counter у 0. Завдяки функціональній області видимості var, змінна доступна в обох обробниках подій. Цей приклад демонструє, як var може бути корисним для створення лічильників у простих сценаріях.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід