关于 Javascript 预编译的笔记

关于 Javascript 预编译的笔记

坚持,记笔记 😀, 加油!

question

  • 作用域的创建阶段、 预编译的阶段
  • 预编译的时候做了什么?
  • javascript 的编译对象 AO 对象,供 javascript 引擎自己去访问

过程:

  • 创建了 AO 对象
  • 找形参和变量的声明,作为 AO 对象的属性名,值是 undefined
  • 实参和形参相统一
  • 找函数声明,会覆盖变量的声明
function func(a, c) {
  console.log(a); // [Function: a]
  var a = 123;
  console.log(a); // 123
  console.log(c); // [Function: c]
  function a() {}
  if (false) {
    var d = 678;
  }
  console.log(d); // undefined
  console.log(b); // undefined
  var b = function () {};
  console.log(b); // [Function: b]
  function c() {}
  console.log(c); // [Function: c]
}

func(1, 2);
// AO: {
//   a: undefined => 1 => function a() {}
//   c: undefined => 2 => function c() {}
//   d: undefined
//   b: undefined
// }
// 然后是js的解释执行 逐行执行

三、参考

https://www.bilibili.com/video/BV1sN411974w?p=2

Last

如果有任何问题欢迎在评论区友好交流呦 😆。

欢迎关注呦 😆,还有我的Github@ienyh一起学习哈哈哈 👨‍💻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值