Ответ к QUIZ 1 #uProgrammer
Твой ПрограммистОтвет: D
Каждая функция имеет свой собственный контекст исполнения (или область действия). Функция getChannel сначала ищет в своем собственном контексте (области действия), чтобы увидеть, содержит ли она переменную channel, к которой мы пытаемся получить доступ. В этом случае функция getChannel содержит собственную переменную channel: мы объявляем переменную channel с ключевым словом let и значением 'U Programmer'.
Переменные с ключевым словом let (и const) поднимаются в начало функции, в отличие от var, которые не инициализируется. Они недоступны до того, как мы объявим (инициализируем) их строку. Это называется "временной мертвой зоной". Когда мы пытаемся получить доступ к переменным до их объявления, JavaScript выдает ReferenceError.
Если бы мы не объявили переменную channel в функции getChannel, движок javascript посмотрел бы вниз по цепочки области действия. Внешняя область имеет переменную с именем channel со значением Твой Программист.
let channel = 'Твой Программист'
function getChannel() {
console.log(channel)
}
getChannel() // Твой Программист