仅在JavaScript代码中使用局部变量更安全吗?
我理解在...中声明的变量
$(document).ready(function () {code here...}
块是本地的。这意味着其他脚本无法访问或更改这些内容吗?
此外,如果变量被声明为全局但在本地分配了一个值,那么该值是否全局可见?
var a;
function myFunction() {
var a = 4;
}
页面上的其他脚本是否能够看到a
的值设置为4?
答案 0 :(得分:1)
不,函数中的变量a
在函数范围之外是不可见的。如果您尝试在代码中的其他位置访问变量a
,它将显示undefined
,因为您刚刚声明了变量,但没有为其分配任何值。
让我们扩展你的榜样:
var a;
function myFunction() {
var a = 4;
}
function anotherFunction() {
console.log(a);
}
anotherFunction();
> undefined
当我们调用anotherFunction()
时,它访问了全局声明的a
,它没有从a
看到局部变量myFunction
。它们完全不同。
最好不要以这种方式使用局部变量。如果您需要它们,最好将它们分组到一个对象中,该对象具有命名空间的作用:
var allMyLocalVariables = {
a: 'a',
b: 'b'
}
现在你可以在任何地方访问它们:
console.log(allMyLocalVariables.a);
如果为对象/命名空间选择合理且有意义的名称,它们与其他变量冲突的可能性非常低。