再谈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(){},是一个赋值过程,在执行期才有用
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(){},是一个赋值过程,在执行期才有用
相关文章推荐
- ExtJs布局详解
- html、css、js文件加载顺序及执行情况
- JSON解析之Json-lib
- 闭包的深刻理解,解释很详细
- ubuntu下libjson-c库的使用问题备忘
- js数组去重的hash方法
- JavaScript资源预加载组件和滑屏组件的使用推荐
- js中的hasOwnProperty和isPrototypeOf方法使用实例
- javaScript中定义一个数组,并往数组中添加值
- js中获取键盘事件及禁止退格键Backspace处理
- 礼拜四log~js一个偷偷技巧
- 兼容IE的动态加载js文件的方法
- web.xml 详细介绍
- FastJSON实现详解
- JavaScript事件冒泡和事件委托
- layer.prompt is not a function
- js数组排序
- js setTimeout
- js点击按钮数字加一的代码
- js异步的理解---千呼万唤始出来啊!