All original content is created in Ukrainian. Not all content has been translated yet. Some posts may only be available in Ukrainian.Learn more

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

This content has not been translated yet.We're showing the original Ukrainian content below.
В 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.

This post doesn't have any additions from the author yet.

24 Jul 11:02

What is apt-get in Ubuntu?

meme code
meme code@memecode
24 Jul 11:25

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

meme code
meme code@memecode
24 Jul 11:47

How to change the language on Steam to Ukrainian?

meme code
meme code@memecode
24 Jul 12:01

What is "Vulkan Shader Processing" on Steam?

meme code
meme code@memecode
24 Jul 12:17

How to make Counter-Strike: GO in Ubuntu full screen without starting the game?

meme code
meme code@memecode
20 Nov 19:35

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

meme code
meme code@memecode
07 Dec 07:42

What is encapsulation in OOP?

meme code
meme code@memecode
07 Dec 08:13

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

meme code
meme code@memecode
07 Dec 08:25

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

meme code
meme code@memecode
09 Dec 12:00

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

meme code
meme code@memecode
09 Dec 12:15

What is best practice in programming?

meme code
meme code@memecode
09 Dec 12:21

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

meme code
meme code@memecode