JavaScript: область видимости
разбираемся с видимостью переменных в JavaScript
Какой результат будет получен, если вывести в консоль значение переменной, которую переименовали внутри функции замыкания?
let name = "Rayn";
(function showName() {
if (name === "Rayn") {
let name = "Rayn Dahl";
console.log(name);
}
console.log(name);
})();
console.log(name);
Результат:
Функция замыкания showName
получает переменную name
из внешней области видимости. А в конструкцииif ()...
с помощью директивы let
создается новая переменная name
c другим значением и ограниченной областью видимости. Поэтому первый console.log(name)
выводит значение Rayn Dahl
. а второй console.log(name)
показывает Rayn
, обращаясь к значению переменной из внешней области видимости.
Rayn Dahl
Rayn
Спасибо за внимание.