ГоловнаВсі публікаціїКатегоріїПро проєкт

Чим відрізняється 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.07.2023 11:02

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

meme code
meme code@memecode
24.07.2023 11:25

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

meme code
meme code@memecode
24.07.2023 11:47

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

meme code
meme code@memecode
24.07.2023 12:01

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

meme code
meme code@memecode
24.07.2023 12:17

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

meme code
meme code@memecode
20.11.2023 19:35

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

meme code
meme code@memecode
07.12.2023 07:42

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

meme code
meme code@memecode
07.12.2023 08:13

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

meme code
meme code@memecode
07.12.2023 08:25

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

meme code
meme code@memecode
09.12.2023 12:00

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

meme code
meme code@memecode
09.12.2023 12:15

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

meme code
meme code@memecode
09.12.2023 12:21

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

meme code
meme code@memecode