Javascript变量范围究竟如何工作?

时间:2015-06-21 14:49:08

标签: javascript variables scope

我是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我可以从外部函数访问内部函数中定义的变量,但是我无法从内部函数访问外部函数中声明的变量。

这是真的吗?如果这是真的,为什么选择?

2 个答案:

答案 0 :(得分:3)

确实如此。在函数中使用var'外部'使val1局部变量而val2函数' inner'由于未使用关键字var,因此具有全局范围。

答案 1 :(得分:2)

你内在"内部"函数缺少var关键字。这使val2成为全局符号。