Встречается на собеседованиях • сегодня

В чем разница между замыканием и областью видимости

Область видимости (scope) определяет доступность переменных в разных частях кода. В JS есть глобальная, функциональная и блочная области видимости (ES6+).

Замыкание (closure) - это функция, которая запоминает свое лексическое окружение даже после выполнения внешней функции. Замыкание использует область видимости, но является более узким понятием.

Пример:

javascript
function outer() {
  const x = 10; // область видимости функции outer
  
  function inner() { // замыкание
    console.log(x); // имеет доступ к x даже после выполнения outer
  }
  
  return inner;
}

const closure = outer();
closure(); // 10

Ключевые отличия:

  1. Область видимости - это правило доступа к переменным
  2. Замыкание - это конкретный механизм сохранения доступа к переменным после завершения функции
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы