zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    移动终端app测试点总结
    Appium+Java(一) Windows环境搭建篇
    BeanShell用法汇总(部分摘抄至网络)【转】
    JVM的GC实现详解
    JVM的GC理论详解
    JVM的栈内存
    JVM的基本结构
    JVM的生命周期
    JVM的启动流程
    JVM的粗略简述
  • 原文地址:https://www.cnblogs.com/autismtune/p/5178432.html
Copyright © 2011-2022 走看看