Как работают статические и динамические области видимости (scope)?
Как движок JavaScript ищет ссылки на переменные в определенном scope?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
3
Сложность:
5
Статическая область видимости (или лексическая область) означает, что правила определения видимости переменных устанавливаются на этапе написания кода, а не во время выполнения. Это значит, что функции запоминают свое окружение, в котором были созданы. Динамическая область видимости, в отличие от этого, определяется тем, как функции вызываются, а не как они определены, что более характерно для некоторых других языков. В JavaScript используется именно статическая область видимости.
Рейтинг:
3
Сложность:
8
JavaScript использует механизм, называемый "лексическое окружение", для поиска ссылок на переменные в определенном scope (области видимости). Когда функция вызывается, создается новое лексическое окружение, которое включает в себя ссылки на переменные, объявленные в родительских scopes. Если переменная не найдена в текущем scope, движок продолжает поиск в родительских scopes до тех пор, пока не найдет переменную или не достигнет глобального scope.