首页 > Web开发 > 详细

js词法分析

时间:2016-02-04 12:23:24      阅读:236      评论:0      收藏:0      [点我收藏+]

/词法分析

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);

js词法分析

原文:http://www.cnblogs.com/autismtune/p/5178432.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!