JavaScript声明提升

首先先看几段代码:

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》一书


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值