Sobes.tech
Back to questions
Middle+
1

Что такое область видимости и лексическое окружение в JavaScript? Чем отличается var от let/const?

Companies where asked
Tilda

Answer from AI

sobes.tech AI

Область видимости (scope) в JavaScript — это контекст, в котором доступны переменные и функции. Лексическое окружение — это структура, которая хранит переменные и функции, доступные в текущем месте кода, и определяется во время написания кода, а не во время выполнения.

Разница между var и let/const:

  • var имеет функциональную область видимости, то есть переменная доступна во всей функции, где объявлена.
  • let и const имеют блочную область видимости, то есть доступны только внутри блока (например, внутри фигурных скобок).
  • var допускает повторное объявление переменной в одной области видимости, let и const — нет.
  • const объявляет константу, значение которой нельзя переназначить после инициализации.

Пример:

function example() {
  if (true) {
    var x = 1;
    let y = 2;
    const z = 3;
  }
  console.log(x); // 1
  console.log(y); // ReferenceError
  console.log(z); // ReferenceError
}
example();