声明一个没有'var'的现有变量会使它成为全局var还是仅仅更改值?

时间:2013-06-12 21:09:30

标签: javascript

假设我有以下代码:

var stop = false
if (!$(this).val()) {
    stop = true
}

'stop = true'声明是否将变量作为全局传递回来,或仅仅更改它的值 - 或者全新的变量!

1 个答案:

答案 0 :(得分:4)

在这种情况下,

stop = true将更改变量的值。

请记住功能范围。如果在函数中使用var,则声明的变量将不在全局范围内。

例如,如果你有这个:

var stop = false;
function foo() {
    var stop = true;
}

调用foo()不会更改stop的值。现在有一个本地stop和一个全局stop。然而...

var stop = false;
function foo() {
    stop = true;
}

现在,在致电foo()时,stop的价值会发生变化。