在赋值给变量后使用var声明变量

时间:2012-10-05 02:37:36

标签: javascript

  

可能重复:
  is there any Advantage of redeclaring javascript variables?

为什么以下代码显示1而不是未定义:

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

1 个答案:

答案 0 :(得分:9)

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

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

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

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

相关问题