假设从var
变量中省略local
是否正确?
总是覆盖同名的global
,如果它也缺少var
?
另外,使用var
创作许可证是否有任何优点。
所以有一个参考框架,这是我发现的 来自我为a previous post创建的谜语。
var
的{{1}}会覆盖其a = 5
对方global
在b
和local
global
返回5 * 5 + 4 + 15 alert()
local
。 15是第25行声明的b
global
b
的{{1}}会覆盖其var
对方b = 4
在global
和a
local
返回5 * 3 + 4 + 4 - global
alert()
。 3是第11行声明的local
a
global
个变量中的a
会覆盖所有var
个对应local
和global
变量之间没有区别。local
返回5 * 5 + 4 + 4 global
内声明的变量答案 0 :(得分:0)
局部变量和形式函数参数将始终覆盖全局变量(或在更高范围内声明的其他变量)。但是,除了函数调用的持续时间之外,这些局部变量实际上并不存在。
要查看此内容,请将任何全局变量a
或b
替换为大写等效项(保留任何本地重新声明或以小写形式使用)你会发现你的代码工作方式相同。
答案 1 :(得分:-2)
没有。 local
在调用函数之后,Scope不会覆盖global
范围。
a = 3;
b = 2;
function line(x) {
a = 5;
b = 4;
return a*x + b;
}
// returns 19 by referencing "global a = 3"
alert(line(a));
b = line(a) - b;
// returns 25 by referencing "local a = 5"
alert(b);
在调用var
后,忽略global
忽略function line(x)
个变量(名称相同)。