在javascript中使用/不使用var前缀定义变量

这个问题在这里已经有了答案:

  • var关键字的用途是什么,什么时候应该使用它(或省略它)? 18个答案

  • 在全局范围内,除非再次使用它,否则没有区别: var my_var; 将重新声明它,而my_var; 将会是无用的表达。


    只有当不在全球范围内时才有区别。

    Ex1(含变种):

    var x = 0; 
    (function(){
      var x = 1; 
      alert('fx: '+ x);
    })(); 
    alert('gx: '+ x);
    
    //fx: 1
    //gx: 0
    

    Ex2(无var):

    x = 0; 
    (function(){
      x = 1; 
      alert('fx: '+ x);
    })(); 
    alert('gx: '+ x);
    
    //fx: 1
    //gx: 1
    

    var实际上是(重新)在任何当前范围内声明变量,而第二种形式是声明它(全局?),除非它已在之前的包含范围中声明。 第二种形式是隐式声明的,而第一种形式是明确的。

    因此,全球范围没有差别,因为它没有包含在其他任何范围内。

    链接地址: http://www.djcxy.com/p/17363.html

    上一篇: define variable with/without var prefix in javascript

    下一篇: What is the difference between var x=1 and x = 1 in NodeJs