关于JavaScript变量提升

请看如下代码:

console.log(a);
var a = 2;

输入结果会是什么?  请说出理由

可能会有三种答案:

1、2

2、抛出ReferenceError异常

3、undifined

对于编译器来说 var a = 2;  这一条语句其实是两条 :

var a;  和  a = 2;

在编译过程中会先执行所有的声明,包括 var a;

当程序执行到第二行时再执行的 a = 2; 

所以输入的结果应该是undifined;

猜你喜欢

转载自www.cnblogs.com/aland-1415/p/9566602.html