全局与局部变量的安全性?

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

  • JavaScript中变量的范围是什么? 25个答案

  • 不,函数中的变量a在函数范围外是不可见的。 如果您尝试访问该变量a中的代码会显示在其他地方undefined ,因为你刚才声明的变量,但没有任何值分配给它。

    让我们来扩展你的例子:

    var a;
    function myFunction() {
        var a = 4;
    }
    function anotherFunction() {
        console.log(a);
    }
    anotherFunction();
    > undefined
    

    当我们调用anotherFunction()它访问anotherFunction()声明的a ,它不会从myFunction看到局部变量a 。 他们完全不同。

    这样最好不要使用局部变量。 如果你需要它们,你最好将它们分组在一个对象中,这个对象将具有名称空间的作用:

    var allMyLocalVariables = {
        a: 'a',
        b: 'b'
    }
    

    现在你可以像这样访问它们:

    console.log(allMyLocalVariables.a);
    

    如果你为你的对象/命名空间选择了一个明智而有意义的名字,它们将与其他变量相撞的概率非常低。

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

    上一篇: Safety of global vs local variables?

    下一篇: How to change the value of variable in a function in javascript?