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>

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/weixin2623670713/p/13616494.html
Copyright © 2011-2022 走看看