🇺🇦Допомогти Україні

Чим відрізняється var від let в Javascript?

ЗмістНатисність на посилання, щоб перейти до потрібного місця
В JavaScript var та let - це ключові слова, які використовуються для оголошення змінних, але вони мають кілька відмінностей у поведінці.

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

var має область видимості на рівні функції (function-scoped). Це означає, що змінні, оголошені з використанням var, визначені в рамках функції, і не доступні за її межами.
function example() {
  if (true) {
    var x = 10;
    console.log(x); // доступно
  }
  console.log(x); // доступно
}
let має блочну область видимості (block-scoped), тобто визначена в блоку коду (як, наприклад, в умовних операторах чи циклах), і не доступна за їхніми межами.
function example() {
  if (true) {
    let y = 20;
    console.log(y); // доступно
  }
  console.log(y); // не доступно
}

Підняття (hoisting)

Змінні, оголошені за допомогою var, піднімаються (hoisted) на верхню частину функції чи глобального об'єкту, тобто їх можна використовувати перед тим, як вони фактично оголошені.
console.log(a); // undefined
var a = 5;
console.log(a); // 5
Змінні, оголошені за допомогою let, також піднімаються, але їх не можна використовувати до їхнього оголошення.
console.log(b); // ReferenceError: b is not defined
let b = 10;
console.log(b); // 10

Чому віддають перевагу let?

Блочна область видимості:
Дозволяє уникнути непередбачуваних ситуацій, коли змінні, оголошені за допомогою var, можуть використовуватися за межами блоків.
Відсутність підняття (hoisting) проблем:
Змінні, оголошені за допомогою let, також піднімаються, але їхнє використання до оголошення видає ReferenceError. Це полегшує розуміння коду, оскільки змінні не мають значення undefined до того, як їм буде присвоєно значення.
Зменшення конфліктів імен:
Використання let може допомогти уникнути ситуацій, коли в коді виникають конфлікти через повторне використання імен змінних. Так як let має блочну область видимості, вона дозволяє використовувати одне ім'я для змінних в різних блоках коду без конфліктів.
Зручніші помилки в час виконання:
Використання let може призводити до більш зрозумілих помилок в час виконання коду. Наприклад, спроба використання змінної перед її оголошенням призведе до ReferenceError, що полегшує виявлення помилок.
Чистота коду:
Сучасні лінтери віддають перевагу let як більш надійному та передбачуваному варіанту оголошення змінних. Наприклад, існує лінтер (linter) для JavaScript, який називається "eslint" і має правило під назвою "no-var". Це правило призначене для виявлення використання ключового слова var в коді та рекомендації його заміни на сучасніші ключові слова, такі як let або const.

Цей допис поки що не має жодних доповнень від автора/ки.

24 лип., 11:02

Що таке apt-get в Ubuntu?

meme code
meme code@memecode
24 лип., 11:25

Як встановити Steam в Ubuntu? Встановлення Steam через термінал.

meme code
meme code@memecode
24 лип., 11:47

Як змінити мову в Steam на українську?

meme code
meme code@memecode
24 лип., 12:01

Що таке "Обробка шейдерів Vulkan" у Steam?

meme code
meme code@memecode
24 лип., 12:17

Як зробити Counter-Strike: GO в Ubuntu на весь екран не запускаючи гру?

meme code
meme code@memecode
20 лист., 19:35

Як відновити видалений файл (Trix), який зберігався на Amazon S3?

meme code
meme code@memecode
07 груд., 07:42

Що таке інкапсуляція (encapsulation) в ООП?

meme code
meme code@memecode
07 груд., 08:13

Контроль видимості в Ruby (public, private і protected)

meme code
meme code@memecode
07 груд., 08:25

Що таке ООП (об'єктно-орієнтоване програмування)?

meme code
meme code@memecode
09 груд., 12:00

Що таке наслідування в Ruby? Приклади поганого та гарного наслідування.

meme code
meme code@memecode
09 груд., 12:15

Що таке best practice у програмуванні?

meme code
meme code@memecode
09 груд., 12:21

Що таке поліморфізм? Приклад використання поліморфізму в Ruby.

meme code
meme code@memecode