关于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;

posted @ 2018-08-31 16:37  覆手为云p  阅读(201)  评论(0编辑  收藏  举报
停止精灵球