Понимание основ работы области видимости в JavaScript избавит вас от головной боли, времени и ошибок в будущем.
Поговорим об объявлениях переменных. Var, let и const. Какая разница? Если вы относитесь к ним, как к гороху и бобам гарбанзо, то пора изменить свой образ жизни. Давайте вместе рассмотрим различия.
Var и Let
До ES6 у JavaScript были только функции и глобальная область видимости. Это означало, что переменная, объявленная внутри функции, жила внутри функции, а переменная, объявленная вне функции, могла существовать где угодно. Это означает, что переменные, объявленные внутри операторов if или других блоков кода, имеют глобальную область видимости и живут за пределами своего блока кода. Вот так:
Как вы понимаете, это может вызвать проблемы в наших проектах.
В ES6 JavaScript представил ключевое слово let и область видимости блока. Область действия блока означает, что если переменная объявлена с помощью let или const в блоке кода, она живет только в этом блоке кода. Это изменяет наш пример, чтобы он выглядел так:
В строке 20 объявляется и инициализируется новая переменная, также называемая dog, но она умирает, как только завершается оператор if. В строке 24 журнал консоли ссылается на первую переменную dog, объявленную и инициализированную в строке 16. Таким образом, возвращается Fido not Argo.
Вот более простой фрагмент, иллюстрирующий области действия var, let и const бок о бок.
Совет: если у вас возникли проблемы с сохранением прямых букв let и var, запомните эти фразы: «var уходит далеко» и «выпустите меня».
Резюме:
Позволять
- Блокировать
Const
- Блокировать
Вар
- Область действия функции
Если вам понравилась эта статья, хлопните в ладоши и ознакомьтесь с моей статьей о понимании подъема в JavaScript, чтобы углубить ваше понимание области действия JavaScript.