在下面的代码中,我在for循环上声明了变量i
,并尝试访问变量i
,我可以获取i
的最新更新值。 >
for(var i = 0; i <= 10; i++){
console.log(i);
}
console.log(i,'outside');
答案 0 :(得分:8)
The var
statement在当前函数的范围内声明一个变量,而不是当前块(the let
statement的作用)。
在for
循环之后,您仍然在同一个函数中,因此该变量仍然存在(最后设置为哪个值)。
(注意:就var
而言,在任何函数之外运行的代码都被有效地视为其自身的函数)。
答案 1 :(得分:2)
好吧,您正在使用var
,而这正是var
类型应该做的!
我们有var
和let
,让我们看看它们是如何工作的。
当您这样声明变量时:
let something;
您只能在该范围内访问something
(例如,您自己的for
循环),而在范围之外,则无法访问它。另一方面,当您使用var
类型时,如下所示:
var something;
您可以在范围之外使用此变量(再次类似于您自己的for
循环)
请注意,我们不是在谈论全局变量。我们只是在讨论范围。
如果要声明全局变量,只需在全局范围内使用var
。