您的位置:首页 > Web前端 > JavaScript

再谈javascript的词法分析

2016-03-10 15:31 465 查看
由一道题开始:

function t3(greet){

var greet="hello";

alert(greet);

function greet(){}

alert(greet);}

}

t3(null);

输出:hello,function

function t3(greet){

var greet;

alert(greet);

function greet(){}

alert(greet);}

}

t3(null);

}

输出:function,function

解析:词法分析的过程

0:创建AO={}

1:

1.1 分析参数 AO={greet:undefined}

1.2 分析参数 AO={greet:null}

2: 分析greet变量声明,AO已经有greet属性,因此不做任何影响

3:分析 greet函数声明,AO.greet=function(){},被覆盖成函数

function a(b){

alert(b);

b=function(){

alert(b);

}

b();

}

a(1);

词法分析的过程:

0:AO={}

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

2::分析 var 声明 ,么有

3:分析函数声明??没有!

注意的是b=function(){},是一个赋值过程,在执行期才有用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: