【问题标题】:What's advantage to use var in the variable declaration? [duplicate]在变量声明中使用 var 有什么好处? [复制]
【发布时间】:2012-02-10 17:57:45
【问题描述】:

可能重复:
Difference between using var and not using var in JavaScript

对于代码,我发现不需要使用 var 来声明变量。以下都有效

// with var
var object = new Object();

// without var
object = new Object();

这两者有什么区别?

【问题讨论】:

标签: javascript


【解决方案1】:

关键的区别是如果你不使用var 关键字,你的变量将是全局的,即使你在一些嵌套函数中定义了它。

var 定义了该变量的范围。是否使用全局变量取决于您是否要跨多个作用域使用您的对象,但强烈建议不要使用全局变量以支持减少全局作用域污染的命名空间。

【讨论】:

    【解决方案2】:

    如果您不使用var 关键字,您将声明一个全局变量。如果你使用它,你就是在当前范围内声明变量。

    例如:

    function foo() {
        o = new Object();
    }
    
    foo();
    alert(o); // you can access the o variable here
    

    这很糟糕,因为您基本上已经污染了全局范围。

    相比之下:

    function foo() {
        // the o variable is accessible only inside the current scope which
        // is the foo function
        var o = new Object();
    }
    
    foo();
    alert(o); // error => o is not accessible here
    

    结论:总是使用var关键字指定变量的范围。

    【讨论】:

      【解决方案3】:

      使用var 使变量成为函数的局部变量

      【讨论】:

        【解决方案4】:

        如果你在任何函数之外的宽泛的 javascript 中使用 var 并不重要,因为

        var a
        

        是一样的
        window.a
        

        但在函数内部

        var a是函数的私有变量,而a指向window.a(全局)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-02
          • 1970-01-01
          • 2011-10-13
          • 1970-01-01
          • 2014-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多