У меня есть вопрос, который может быть очевиден для опытных программистов JavaScript (я больше разработчик бэкэнда/БД). Итак, если это слишком просто, пожалуйста, несите меня!JavaScript: инициализировать глобальную переменную в функции
У меня есть этот код:
var skill = "JavaScript";
function printSkill() {
console.log(skill); // <-- This prints undefined
var skill = "Java"; // <-- How can this possibly work?
console.log(skill); // <-- This prints "Java"
}
printSkill();
Выход есть:
неопределенными
Java
Я понимаю, что можно запустить этот код, поскольку JavaScript не составлен, он интерпретируется во время выполнения (это не будет компилироваться в например C++). Но почему этот код работает? Например. почему undefined
зарегистрирован вместо "JavaScript"
, что было бы очевидным выбором, когда дело доходит до правил определения области, например. C++. И, как получилось, что второй журнал печатает «Java», не будет ли это также undefined
?
попробуйте сохранить в переменном окне 'window.skill =«JavaScript»,' затем утешать войти в функции будет 'console.log (window.skill)' –