码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript 的词法分析

时间:2014-05-19 14:30:22      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

 Javascript 的词法分析

过程:

1、先分析参数

2、再分析变量声明

3、分析函数声明

具体步骤:

1、函数运行前的瞬间,生成 Active Object (AO)

2、

  2.1 函数声明的参数,形成AO的属性,值全部是 undefined

  2.2 接受参数,形成AO相应的属性值

3、分析变量声明,如 var arg,

  如果AO上还没有这个arg的属性,则添加AO属性,值是undefined

  如果AO上已经有arg这个属性,则不做任何影响

4、分析函数声明,如 function foo(){},

  则把函数赋给 AO.foo属性

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

 

例子:

bubuko.com,布布扣
function test(a){
    var a = ‘hello‘;
alert(a);
function a(){ } alert(a); } test(null); //两次输出 hello
bubuko.com,布布扣

分析过程:

1、AO= {}

2、分析参数AO={a:undefined},赋值 AO={a:null}

3、分析a变量声明,AO已经有a属性,因此不影响

4、分析a函数声明,AO.a=function(){},被覆盖成函数

Javascript 的词法分析,布布扣,bubuko.com

Javascript 的词法分析

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/timily/p/3735276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!