7.31 签到,js 全局预处理笔记

js 解析与执行过程:

      一、全局:

           1、预处理阶段 :    

                1、LexicalEnviroment === window {1、预处理 var   |   2、function xxx //预处理申明的函数}    // 注: 不预处理 函数表达式的方法 创建的 函数    : var g = function () ;
                2、ECMA - 262 VariableEnvironment

                

 

           2、执行阶段:

 

 

    console.log(a);                                    // 4、输入的是预处理阶段的 function a{return 6;}
    function a(){
     return  document.documentElement.OffsetWidth;     // 1、首先预处理function a()
    }
    function a(){
     return  6;                                        // 2、覆盖function a()
    }
     var a = 3;                                        // 3、var 申明变量优先级低于 function,所以无效
     a = 3;                                            // 4、表达式a = 3,是执行阶段,覆盖为a = 3;
    console.log(a);                                    // 5、输出顺序执行的 a = 3;

 

  

 

 

 

      二、函数:

          1、每调用一次,产生一个LexicalEnviroment

          2、先函数的参数

          3、内部申明式函数

          

  function test(a,b){
    // LexicalEnviroment{
    //   a = function a;
    //   b = 2;
    // }
    alert(a);
    alert(b);
    var b = 100;

  }
  function a(){};
  test(1,2);

 

posted @ 2016-08-01 00:24  Tachi  阅读(185)  评论(0编辑  收藏  举报