我想了解JS中的范围。在这里我有一个例子,它在全球范围内有一个名为check
的变量。它具有真值,我的意思是1
。然后内的函数调用main
其中doesn't have a variable called check
但具有if statement
它检查是否有一个检查变量或没有,在其它重新分配另一个值来检查variable.Then打印它out.if我使用为什么如果语句没有在全球范围内寻找变量
if(check){}
它打印未定义。 这里我有一些问题:
检查变量在全球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'变量。 – 2014-10-09 22:21:37
它没有找到一个check.it打印未定义。 – 2014-10-09 22:22:38
当您执行'var check = 10'时,您将其设置为undefined。 :)我相信答案很快就会解释。这是一个非常普遍的问题。 – 2014-10-09 22:22:49