• js词法分析


    /词法分析

    1先分析参数

    2在分析变量声明

    3分析函数声明

    一个函数能使用的局部变量就从上面的3步分析而来

    具体步骤:

    0:函数运行前的1瞬间,生成Active Object(活动对象),下称AO

    1:把声明的参数形成Ao的属性,参数的值即属性的值;;接收参数,形成AO相应属性的值

    2:分析变量声明,如var age;

    如果Ao上还没有age属性,则添加age属性,值是undefined;

    如果AO上已经有age属性,则不做任何处理

    3 分析函数声明,如function foo(){};

    则把函数赋给AO.foo()属性

    注:如果此前foo属性已经存在,则被无情覆盖

    /

    function t(age){

    alert(age);

    }

    t(5);//5

    t();//undefined

    /词法分析过程:

    AO(age:undefined)

    运行过程:

    t(5)    AO.age=5;alert(AO.age);//5

    t()    AO.age没有得到赋值,还是undefined/

    function t2(){

      var age=99;

      alert(age);

    }

      t2(5);

    /分析过程:

    0:形成AO={};

    1: 分析形参 AO={age:undefined;}

    2:分析var age,发现AO已有age属性,不做任何影响

    执行过程:

    AO.age=99;

    alert(AO.age);//99

    /

    function a(b){

      alert(b);

      function b(){

      alert(b);

      }

      b();

    }

    a(1);

    /分析过程

    0:AO={};

    1:分析参数AO={b:undefined;}

    接收参数AO={b:1}

    2:分析var声明,此函数没有var

    3:分析函数声明,AO={b:function(){alert(b);}}

    执行期

    alert(b);//function

    b();//由作用域寻找到a函数中的b,即function ,alert出来

    /

    function a(b){

      alert(b);

       b=function(){

      alert(b);

      }

      b();

    }

    a(1);

  • 相关阅读:
    计算机网络技术基础2
    java基础
    跨页传递参数或临时表的几种方法
    ASP.NET2.0文件上传以及图片处理总结篇 [转]
    正则表达式
    ASP.NET2.0中WEB应用程序的部署
    比较著名的.net技术论坛名称
    WordPress 插件开发实例 – 详细注释的 Widget 开发例子
    Java Applet签名验证
    Java Logging API Tutorial
  • 原文地址:https://www.cnblogs.com/autismtune/p/5178432.html
Copyright © 2020-2023  润新知