Devs Hive
Повернутися до всіх запитань

Яка різниця між let i var?

JavaScriptJunior
Зустрічали на інтервʼю:0 користувачів

Це питання задають не часто, але воно все ще актуальне тому варто розуміти основні відмінності:

Область видимості

var має функціональну область видимості (function scope) тому якщо ми оголошуємо змінну var в блоці {}, вона все одно буде глобальна в рамках функції де була оголошена або в рамках глобального обʼєкту.

if (true) {
var a = 10;
let b = 20;
}

console.log(a); // 10
console.log(b); // undefined або помилка, якщо використовується strict mode

function fn() {
var c = 30;
}

console.log(c) // тут буде undefined, так як функція інкапсулює змінну c

Hoisting

В цілому, як var так і let піднімаються на початок області видимості, але є суттєва різниця при спробі доступу до них.

var піднімається і присвоюється значення undefined, яке ми отримуємо при доступі let піднімається, але при спробі доступу, отримаємо помилку.

console.log(x); // undefined
var x = 5;

console.log(y); // ReferenceError
let y = 10;

Повторне оголошення

var можна оголосити повторно в межах однієї області.

let не можна повторно оголосити в межах одного блоку, бо отримаємо помилку.

Зустрічав на інтервʼю?

Коментарі (0)

Увійдіть, щоб залишити коментар

Поки що немає коментарів. Будьте першим!