了解JavaScript作用域
我试图理解作用域在JS中是如何工作的。你能告诉我我对这段代码的理解是否正确吗:了解JavaScript作用域,javascript,scopes,Javascript,Scopes,我试图理解作用域在JS中是如何工作的。你能告诉我我对这段代码的理解是否正确吗: for(var i = 0; i<5; i++){ setTimeout(function timeoutHandler() { var i = i; console.log(i); //undefined }) } for(var i=0;i试图通过以下示例理解它: for(var i=0;i试图通过以下示例理解它: 用于(var i=0;ivar i=i在setTimeout回调处理程
for(var i = 0; i<5; i++){
setTimeout(function timeoutHandler() {
var i = i;
console.log(i); //undefined
})
}
for(var i=0;i试图通过以下示例理解它:
for(var i=0;i试图通过以下示例理解它:
用于(var i=0;ivar i=i
在setTimeout回调处理程序中为i
创建一个新的作用域,并且i
在再次分配给i
之前还没有定义。因此i
是未定义的首先var i=i
没有意义。var i=i
等同于vari、 i=i;
。尝试将i
作为setTimeout
@JJJ的参数传递,这将解释为什么i
在setTimeout回调处理程序中设置为undefined
var i=i
会为i
创建一个新的作用域,并且i
在分配给i之前尚未定义de>再次出现。因此i
是未定义的
。首先var i=i
没有意义。var i=i
相当于var i;i=i;
。尝试将i
作为setTimeout
@JJJ的参数传递,这将解释i
设置为未定义的原因。