您的位置:首页 > Web前端 > JavaScript

JavaScript变量声明提升

2016-01-27 10:09 323 查看
首先先看几段代码:

1:

a = 2;

var a;

console.log(a); // 2

2:

console.log(b);

var b = 2; //undefined

3:

c = 2;

console.log(c);

var c; //2

为什么会这样呢?

编译阶段的一部分工作就是找到所有的声明(这里的声明是指定义声明,赋值声明不会被提升),用合适的作用域把它们关联起来。举个栗子:第二段代码中 var b = 2 —>

 var b; b = 2;

这里 var b ;

会被提升,而b  =2;是赋值声明,不会提升,会在原地等待执行阶段 。

困扰了我好久的问题终于搞懂了orz

更多请移步《你不知道的JavaScript》一书
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: