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

    预编译前奏

    1.imply global暗示全局变量,如果变量未经申明就赋值,此变量就为全局变量所有

     function fun(){
                a=20
            }
            fun();
            console.log(a)/*a为20*/

    2.一切声明的全局变量,全是window的属性。

    即var a=10等于window.a

     var a=10;
            var b=20;
            var c=30;
            console.log(window)

    3.预编译发生在函数声明的前一刻

    预编译主要分为两种

    全局(相当于只要局部的2,4部分):

    全局是script标签中的代码,不包括函数执行

    1.生成一个GO对象找声明变量,变量名为属性名,值为undefined;

    2.找函数声明,函数名为属性名,值为函数体,如果函数名和变量名一样则无情覆盖

    函数内部(局部):

    1创建AO对象

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

    3.将实参和形参统一------也就是将实参的值赋给形参

    4找函数声明,函数名为属性名,值为函数体,如果函数名和变量名一样则无情覆盖

    全局实例:

    <script type="text/javascript">
            console.log(a)
            var a=10;
            console.log(a)
            function a(){}
            console.log(a)
            </script>

    1.创建GO对象:

    GO{

    a:undefined

    }

    2.找函数声明,函数名为属性名,值为函数体,如果函数名和变量名一样则无情覆盖:

    GO{

    a:function a(){}

    }

    3.逐行执行:

    函数内部实例:

    <script type="text/javascript">
            function fn(a){
                console.log(a);
                var a = 123;
                console.log(a);
                function a(){}
                console.log(a);
                var b = function(){}
                console.log(b);
                function d(){}
            }
            fn(1);
            </script>

    1.创建AO对象(执行上下文):

    AO{

    }

    2.找形参和变量声明,将将形参和变量名作为AO的属性名,值为undefined:

    AO{

    a:undefined

    b:undefined

    }

    3.将实参和形参统一------也就是将实参的值赋给形参:

    AO{

    a:1

    b:undefined

    }

    4.找函数声明,函数名为属性名,值为函数体,如果函数名和变量名一样则无情覆盖

    AO{

    a:function a(){}

    b:  undefined

    }

    5.然后逐行执行:

  • 相关阅读:
    租户功能
    async await
    IOptions and context
    Setting Management: 用于持久化设置Setting值
    设置模块
    vs2017单元测试没反应,检测出错误,有关详细信息,请查看“测试输出”窗口
    自定义JS组件+调用restfui接口显示(SpringBoot)
    flex布局采用justify-content:space-between时,当为两个内容时中间被空出的解决方案
    CSS3 边框彩虹跑马灯
    react native 调试时,调出DEV菜单
  • 原文地址:https://www.cnblogs.com/xuhanghang/p/10146258.html
Copyright © 2011-2022 走看看