• 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>

  • 相关阅读:
    oracle数据类型
    hive的union,hive连接查询的优化,mapjoin的设置参数
    hive分隔符
    hive load数据到表的方式
    hive的常用命令操作与数据类型以及hive的严格模式
    hadoop fs 与 dfs 的区别
    pl/sql程序语法,存储过程, orcle服务
    mysql连接启动
    HTTP协议
    php6
  • 原文地址:https://www.cnblogs.com/weixin2623670713/p/13616494.html
Copyright © 2020-2023  润新知