zoukankan      html  css  js  c++  java
  • js预编译

    js函数预编译

    创建AO 第一步,寻找参数变量住。

    提升变量未定义,参数赋值相统一。

    声明函数最后找,赋值函数身体到。

    已经提升不用看,变量赋值最果断。

    创建AO 第一步,寻找参数变量住。

    js函数预编译

    第一步创建 AO对象

    AO{

    }

    第二部寻找变量声明以及形参

    提升变量未定义,参数赋值相统一。

    将他们放入 AO对象中 并且值为undefined

    然后将形参实参相统一

    声明函数最后找,赋值函数身体到。

    最后一步是 寻找函数声明 并赋值

    已经提升不用看,变量赋值最果断。

    然后在函数执行的时候 已经提升到 AO的部分就忽略不看

     <script>

        /*

        第一步创建 AO 对象

        *AO{

            第二部 寻找变量声明

            a:undefined,

            b:undefined,

            第三步 实参形参相统一

            a:1,

            b:3,

            第四部提升函数

            a:function a() {},

            b:3,

        }

        */

        function prepar(a, b) {

            console.log(b); // -------> 3

            var a = 4; //运行到这儿 a = 4

            var b = 5; //运行到这儿 b = 5

            console.log(a); //-------------->4

            function a() {

            }

            var b = function b() {

                    //注意这是函数表达式 不是声明所以

                    //不会提升函数 只会提升前边的变量声明

                }

                //运行到这儿 b = function b() {}

            console.log(b);//-------------->function b() {}

        }

        prepar(1, 3);

    </script>

  • 相关阅读:
    从泛型类中继承
    DataGridView中的单元格提示错误信息
    C#中的转换
    C#的运算符重载
    解决android模块化升级方法
    个人总结如何在项目管理的实际软件开发工作的几个关键点和控制
    bash no such file or directory in ubuntu 1404
    java 遍历树节点 同时保留所有的从根到叶节点的路径
    ZendFramework2学习笔记 json和ajax
    POJ 2531-Network Saboteur(DFS)
  • 原文地址:https://www.cnblogs.com/weixin2623670713/p/13616494.html
Copyright © 2011-2022 走看看