JavaScript预编译的个人笔记

一、变量的声明

1.变量未声明直接使用,报错。
2.变量未声明赋值,不报错。此时该变量为全局变量。

二、预编译

1.若单从(函数声明整体提升,变量 ‘声明’提升)解题,不能从根本上解决一些较复杂问题。
例:猜猜控制台的打印结果。
test
2.函数的预编译
预编译发生在函数执行的前一刻。

  1. 创建AO对象;
  2. 找形参和变量声明,值为undefined;
  3. 将实参与形参相统一;
  4. 在函数体中寻找函数声明,赋值函数体。
    第一步:创建AO
    第二步:AO{ a:undefined;b:undefined;找到形参、变量声明、函数声明 a 和函数声明 d
    第三步:AO{a:1; b: undefined;a 实参形参相统一
    第四步AO{a:function a(){}; b:undefined; d:function(){};a赋值函数体,函数声明 d 赋值函数体
    结合函数分析:
    分析
    结果为:
    结果

3.全局的预编译
即为GO,GO的过程和AO类似,只是没有第三步。

  1. 创建AO对象;
  2. 找形参和变量声明,值为undefined;
  3. 在函数体中寻找函数声明,赋值函数体。

例1
全局解
例2
在这里插入图片描述

最后知识强化题(答案在下一期作用域链中公布)
题

博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的博客啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值