【发布时间】:2016-04-15 06:47:35
【问题描述】:
对于下面的代码,因为我已经用var a 重新声明了a,所以我对alert(a) 的期望是显示undefined,但为什么它显示4?
function f(a) {
var a;
alert(a);
}
f(4);
【问题讨论】:
-
jslint 或其他 linter 会报错如“Redefinition of
a:, -
另外,如果你使用
let而不是var,解释器(或转译器)本身会产生一个有用的错误。 -
你的标题很误导人,你没有在这里重新定义变量
标签: javascript scope var