Область видимости
Вы уже знаете, что переменные можно объявлять в любом месте кода. Но от места, где объявлена переменная, зависит возможность обратиться к этой переменной.
Правила поиска переменной в функции
Когда вы обращаетесь к переменной, движок ищет её, руководствуясь двумя правилами.
Глобальная и локальная область видимости
Область видимости вне любых функций называется глобальной. Идентификаторы, определённые в ней, видны везде.
Вложенные области видимости
Области видимости «вкладываются» друг в друга.
Затенение идентификаторов
Если в теле функции обратиться к идентификатору, движок JavaScript сначала ищет его в теле этой функции, и уже потом снаружи.