jquery变量scoop里面的if

时间:2013-09-15 07:58:15

标签: javascript

if(){
     var1 = "some html"
}

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

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

不要将变量声明为var var1

1 个答案:

答案 0 :(得分:1)

提到Felix Kling

  

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