Різниця у використанні ключових слів Var, Let та Const у JavaScript

Ці змінні будуть відрізнятися за трьома параметрами: Scope (область видимості), Hoisting (підняття) і Reassignment (переназначення).

Var

Коли змінна оголошується за допомогою цього ключового слова всередині функції, вона стає доступною по всій функції, навіть до рядка, де вона була вперше оголошена.

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

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

Let

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

Її можна переназначати, але не можна повторно оголошувати в тій самій області видимості. Не можна оголосити іншу змінну з таким самим ім'ям у межах одного блоку.

Змінну можна оголосити лише перед її використанням. Якщо спробувати звернутися до неї до оголошення, це призведе до ReferenceError, оскільки вона буде перебувати в «Temporal Dead Zone», поки не буде досягнуте її оголошення.

Const

Змінна, оголошена за допомогою const, також має область видимості на рівні блоку.

Її не можна переназначати або повторно оголошувати. Змінна, оголошена як const, не може змінювати своє значення. Якщо змінна const містить масив або об'єкт, вміст можна змінювати, але саму змінну не можна переназначати на інший об'єкт або масив.

Змінну можна оголосити лише перед її використанням. Якщо спробувати звернутися до неї до оголошення, це призведе до ReferenceError, оскільки вона буде перебувати в «Temporal Dead Zone» до її оголошення.

Найкраще використовувати const, коли змінна не повинна змінюватися, а let — коли її можна переназначати. Найкраще уникати використання var, оскільки він має незрозумілу поведінку в плані області видимості.

function me() {

if (true) {

var x = 10;

let y = 20;

const z = 30;

console.log(x); // Виведе: 10

console.log(y); // Виведе: 20

console.log(z); // Виведе: 30

y = 25; // Це дозволено //

z = 35; // Це викличе помилку: Assignment to constant variable console.log(y) // Виведе: 25

}

console.log(x); // Виведе: 10 (var має область видимості на рівні функції)

// console.log(y); // Це викличе помилку: y is not defined (let має область видимості на рівні блоку)

// console.log(z); // Це викличе помилку: z is not defined (const має область видимості на рівні блоку) }

me();

Перекладено з: Differentiation between the uses of Var, Let and Const keywords in Javascript

Leave a Reply

Your email address will not be published. Required fields are marked *