3

可能重复:
重新声明javascript变量有什么好处吗?

为什么下面的代码显示 1 而不是 undefined:

a = 1;
var a;
alert(a);
4

1 回答 1

9

1)var不重新声明或删除变量

2) 即使这样做了,您的代码也会使用 javascript 提升规则重写*(任何变量或函数声明都会移动到最近的封闭函数的顶部),如下所示:

var a;
a = 1;
alert(a);

(*有效重写;请参阅 RobG 的关于输入执行上下文的评论和链接以进行澄清)

于 2012-10-05T02:40:49.783 回答