Я пытаюсь понять область видимости в JS.Here У меня есть пример, который имеет переменную в глобальной области действия, которая называется check
. У нее есть правдивое значение, которое я имею в виду 1
. внутри функция называется main
которой doesn't have a variable called check
но имеет if statement
, который проверяет, существует ли переменная проверка или нет, на которой она переназначить другое значение, чтобы проверить variable.Then печатает его out.if я используюПочему оператор if не ищет переменную в глобальной области?
if(check){}
печатает неопределенными , Вот у меня есть некоторые вопросы:
1. переменная проверка объявленные в глобальном scope.It означает, что он имеет everywhere.Then доступа, даже если IF statement
не удается, то необходимо напечатать глобально присвоенное значение, которое 1 вместо неопределенного .Почему он печатает undefined вместо 1 ??
2. Основная область действия функции не имеет переменной проверки. Если в случае обнаружения не удается найти проверку внутри области основной функции, почему она не ищет ее в глобальной области?
(function(){
var check=1;
function main(){
\t \t if(check){
var check=10;
\t }
\t \t \t document.write(check);
\t \t \t }
\t \t main();
})();
Потому что он обнаружил переменную 'check', прежде чем достигнет глобальной области. –
он не нашел check.it, печать не определена. –
Вы установили его равным неопределенному, когда вы выполнили 'var check = 10'. :) Я уверен, что ответ объяснит это в ближайшее время. это очень распространенная проблема. –