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>

  • 相关阅读:
    用 jQuery 实现表单验证(摘抄)——选自《锋利的jQuery》(第2版)第5章的例题 5.1.5 表单验证
    js内置对象
    浅析js中的堆和栈
    深入理解js立即执行函数
    Javascript 中 null、NaN和undefined的区别
    javasript
    关于HTTP协议,一篇就够了
    ssh_maven之controller层开发
    ssh_maven之service开发
    ssh_maven的搭建之dao层的开发
  • 原文地址:https://www.cnblogs.com/weixin2623670713/p/13616494.html
Copyright © 2011-2022 走看看