我是JavaScript的新手,我对变量范围有一些疑问。
所以我试着做这个例子:
function outer() {
alert("INTO outer()");
var val1 = 1;
inner();
alert(val2);
}
function inner() {
alert("INTO inner()");
val2 = 2;
}
outer();
在这个简单的例子中, outer()函数被执行,在这个函数中我调用 inner()函数来声明和初始化 val2 变量。然后返回 outer()函数,然后从此处访问并打印 val2 值。
所以我接触到Javascript我可以从外部函数访问内部函数中定义的变量,但是我无法从内部函数访问外部函数中声明的变量。
这是真的吗?如果这是真的,为什么选择?
答案 0 :(得分:3)
确实如此。在函数中使用var'外部'使val1局部变量而val2函数' inner'由于未使用关键字var,因此具有全局范围。
答案 1 :(得分:2)
你内在"内部"函数缺少var
关键字。这使val2
成为全局符号。