为什么要在内部使用"var"进行循环?

Joh*_*ohn 3 javascript for-loop

这似乎是一个简单的问题,但我无法找到答案..

例如,如果我有以下对象:

  var a = {
    foo : "FOO",
    bar : "BAR"
  }
Run Code Online (Sandbox Code Playgroud)

现在,如果我想列出objec的属性,我应该做以下事情:

  for( var b in a ) {
    // do something
  }
Run Code Online (Sandbox Code Playgroud)

或者,我可以这样做:

  for( b in a ) {
    // do something
  }
Run Code Online (Sandbox Code Playgroud)

但是,这些方法之间的区别是什么?为什么要使用"var"或为什么不在for循环中使用"var"?

Nik*_*iko 7

如果使用之前未声明的变量而不预先添加var,则创建一个全局变量.

function scope() {
    a = "hi";      // global
    var b = "ho";  // local
}
Run Code Online (Sandbox Code Playgroud)

但是,没有区别

for (var b in a) { /* .. */ }
Run Code Online (Sandbox Code Playgroud)

var b;
for (b in a) { /* .. */ }
Run Code Online (Sandbox Code Playgroud)

  • `"使用严格";` (2认同)