JavaScript精髓-02预编译

admin 2023年6月1日13:48:04评论14 views字数 927阅读3分5秒阅读模式

预编译

注意本文主要会以视频的形式呈现,由于目前微信不支持直接发送付费视频,故这里以图文的形式出现,视频见最后,这里需要注意的是,已经购买知识星球的童鞋没有必要购买此付费合集,后面也会在知识星球呈现,由于后面知识星球的价格会上涨,故这里的价格是低于后面的知识星球的价格的,不想要其他内容的童鞋可以直接购买此付费合集


先搞清楚几个概念:

1.形参和变量声明

以下面的test函数为例:

a,b为形参;

变量声明有:c

2.实参为test(1)中的1

function test(a, b{
  console.log(a);//1
  console.log(b);//[Function: b]
  console.log(c);//undefined


  c = 0;
  var c;
  console.log(c);//0
  a = 5;
  console.log(a);//5

  b = 6;
  console.log(b);//6
  function b({
    console.log("这是函数b")
  };

  function d({
  };
  console.log(b);//6
  console.log(d);//[Function: d]
}

test(1);

预编译过程:
1.创建AO活动对象(Active Object);
2.查找形参和变量声明,值赋予undefined;
3.实参值赋给形参;
4.查找函数声明,值赋予函数体;
(一般步骤1,2可以认为是一步)

test函数的整个AO过程:
1th:查找形参和变量声明,值赋予undefined:


AO = {
  aundefined,
  bundefined,
  cundefined
}

2nd:实参值赋给形参:


AO = {
  a1,
  bundefined,
  cundefined
}

3rd:查找函数声明:

AO = {
  a1,
  bfunction b({
    console.log("这是函数b")
  },
  cundefined,
  dfunction d({
  }
}

注意点:

原文始发于微信公众号(迪哥讲事):JavaScript精髓-02预编译

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月1日13:48:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JavaScript精髓-02预编译http://cn-sec.com/archives/1780102.html

发表评论

匿名网友 填写信息