JS оператор let


Загальний опис

let — це ключове слово в JavaScript, яке використовується для оголошення змінних із блочною (локальною) областю видимості. Змінні, оголошені за допомогою let, доступні тільки в тому блоці коду, де вони були визначені, включаючи вкладені блоки. Ця властивість дозволяє уникати багатьох проблем із повторним оголошенням змінних, які могли виникати при використанні var.

Одна з ключових переваг let — це обмеження видимості змінної до блоку, де вона була оголошена. Наприклад:

if (true) {
    let a = 10;
    console.log(a); // 10
}
console.log(a); // Помилка: a не визначена

На відміну від var, змінні, оголошені через let, не «вспливають» (hoisting) в сенсі, що їх не можна використовувати до оголошення:

console.log(a); // Помилка: Cannot access 'a' before initialization
let a = 5;

let також дозволяє уникати повторного оголошення змінної в межах одного блоку, що сприяє більшій передбачуваності коду:

let x = 10;
// let x = 20; // Помилка: Identifier 'x' has already been declared
x = 20; // Оновлення значення змінної дозволено

Ще однією важливою особливістю let є те, що змінні, оголошені через нього, прив'язані до блоку та ігнорують циклічне замикання (closure) в межах лямбда-функцій. Це корисно, наприклад, у випадку з циклами:

for (let i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 1000);
}
// Виведе: 0, 1, 2

Таким чином, let є ідеальним вибором для роботи з локальними змінними, що використовуються в межах окремих блоків, функцій або циклів.

автор: Bond

Порада

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

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

Уникайте повторного оголошення змінних у межах одного блоку. Хоча JavaScript не дозволить цього, явне управління змінними допоможе уникнути логічних помилок.

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

Звертайте увагу на «мертву зону» (Temporal Dead Zone). Використовуйте let тільки після її явного оголошення, щоб уникнути помилок під час виконання.

автор: Bond

Синтаксис

let ім'яЗмінної = значення;

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
49 44 10 17 14
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
49 49 44 10
Підтримка: серверні переглядачі
Переглядач Node.js Deno
6.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі let забезпечує, що змінна i має окреме значення для кожної ітерації, навіть у випадку асинхронних запитів. Це допомагає уникнути помилок, коли всі запити посилаються до одного і того ж індексу.

const urls = ['url1', 'url2', 'url3'];
for (let i = 0; i < urls.length; i++) {
    fetch(urls[i])
        .then(response => response.json())
        .then(data => console.log(`Дані з URL ${i}:`, data))
        .catch(error => console.error(`Помилка на URL ${i}:`, error));
}
автор: Bond

Тут змінна sum, оголошена через let, обмежена тільки внутрішнім циклом. Це дозволяє уникати непередбачуваних конфліктів з іншими змінними поза циклом.

for (let i = 0; i < 3; i++) {
    let sum = 0;
    for (let j = 0; j < 3; j++) {
        sum += i + j;
    }
    console.log(`Сума для i=${i}:`, sum);
}
// console.log(sum); // Помилка: sum не визначена
автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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