zoukankan      html  css  js  c++  java
  • 重温JavaScript预编译的四个步骤

    JS是解释型语言,运行过程分三步:

    一、语法分析(检查代码是否存在语法错误);

    二、预编译(代码执行之前,在内存中开辟空间,存放变量与函数);  

    三、解释执行(执行JS代码);

    理解预编译的过程,对于理解作用域链、闭包、this指向、原型链至关重要,它们是相辅相成的。

    预编译分为四步:

    1、创建AO对象

    就是隐式的创建一个AO(Activation Object)空对象。

    2、查找形参和变量声明,将形参名和变量名作为AO对象的属性,值为undefined

    注意此处是变量声明(必须带var),只是查找形参名和变量声明名不赋值。

    3、将形参与实参统计

    即修改AO对象中属性名为形参的值为传入的实参,如果没有形参此步略过。

    4、查找函数声明,函数名作为AO对象的属性,函数体作为的值

    此处是函数声明,而非匿名函数和函数表达式。

    总结:预编译过程就是查找变量声明、形参和函数声明的过程,并不初始化赋值,在解释执行阶段才会进行初始化 。

  • 相关阅读:
    jdb应用 远程调试
    maven POM总结
    jvm
    jdbc取出表名 名称
    nginx配置openssl证书
    DNS A记录 CNAME NS记录等的区别
    linux文件目录类命令|--cd指令
    linux文件目录类命令--ls命令
    linux文件目录类命令--pwd命令
    linux 帮助指令
  • 原文地址:https://www.cnblogs.com/splendid/p/10248157.html
Copyright © 2011-2022 走看看