0
if(){
     var1 = "some html"
}

if(){
     console.log(var1);
}

var1未定义的,但我认为不使用 var makevar1成为全局变量?

就像不将变量声明为var var1

4

1 回答 1

1

正如菲利克斯克林所说

JS只有函数作用域,没有块作用域

考虑这个例子:

前 #1

   function Scope1(){
      var1 = "1";  // window.var1 = "1"
    }
    function Scope2(){
      var1 = "2";  // window.var1 = "2"
    }
    function Scope3(){
      var var1 = "3"; // var1 = "3" local variable for the Scope3 function
                      // window.var1 and var1 are different variables
    }
    Scope1();
    console.log(var1); // returns 1
    Scope2();
    console.log(var1); // returns 2
    Scope3();
    console.log(var1); // returns 2

前 #2

  if(true) {
    var1 = "1"; // window.var1 = "1"
  }
  if(true){
    console.log(var1); // returns 1
    var1 = "2";        // window.var1 = "2"
  }
  console.log(var1);   // returns 2

前 #3

  for(var i = 0; i < 10; i++){
  }
  console.log(i); // returns 10, because for is not a function
于 2013-09-15T08:37:36.120 回答