js词法分析
来源:互联网 发布:大数据技术发展现状 编辑:程序博客网 时间:2024/06/08 17:20
当函数调用的前一瞬间,分析以下3个方面的东西,
1:参数2:局部变量声明3:函数声明
在函数运行的前一瞬间,先形成一个激活对象,叫Avtive Object, AO,AO的作用是用来存储一个函数相关的参数,局部变量等.函数内部无论是引用参数,还是引用局部变量,都到AO上找.
<script type="text/javascript">function t3(x,y) { var x = 7; console.log(x); // 7 console.log(y); // undefined}//t3(5);/***// 分析参数AO[x,y]// 分析变量声明AO.x 已存在,不做任何影响.AO[x,y]// 执行过程AO.x = 7console.log(AO.x) ==> 7console.log(AO.y) ==> undefined***///------------------------------------var str1 = 'global';function t4() { console.log(str1); //global console.log(str2); //undefined var str2 = 'local'; console.log(str2);//local}//t4();/* 词法分析过程分析参数AO[]分析局部变量AO[str2] ,值是undefined执行console.log(str1); // AO上找不到,到全局找console.log(str2); // AO上找到,值是undefined*///------------------------------------function t(x,y) { function x() { alert('hello'); } var y = 99; console.log(x); //function console.log(y); //99 }t(3,4);/***// 词法分析// 分析参数AO[x,y],// 分析变量声明AO[y],已存在,不做任何影响.// 分析函数声明表达式形成AO.x = funciton x() {alert('hello')}***/</script>
<script type="text/javascript">/*function t(x) { alert(x); // function function x() { alert(x); } alert(x); // function}t(1);*/function t(x) { alert(x); // 1 var x = function () { alert(x); } alert(x); // function}t(1);// 通过上面的例子可看出// 函数声明表达式,和函数变量表达式的区别.// function t () {} ,这种称为声明表达式, 立即影响AO// var x = function () {} ,这种是等号右边是一个表达式,返回[函数类型的]值,把值赋给x,</script>
<script type="text/javascript">/*function t(x) { alert(x); // function function x() { alert(x); } alert(x); // function}t(1);*/ function t1(x) { alert(x); // function function x() { var x = 9; alert(x); } x(); // 9 如果var x = 9 屏蔽 ,结果是function}t1(1);/**// 分析参数AO1AO1[x]AO1[x=1]// 分析函数声明表达式AO1[x=function(){}]执行x函数:AO2AO2[]// 执行内部alert(x)**/</script>
- js词法分析
- js词法分析
- js高级词法分析
- js词法分析
- js的词法分析
- js-----词法分析过程
- js词法分析 作用域
- js笔记之词法分析
- js中词法分析学习笔记
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- 词法分析
- Console命令详解,让调试js代码变得更简单
- ZOJ 3644 记忆化搜索
- asterisk利器:部署asterisk项目到Netbeans进行实时调试(图解)
- Html内容分页处理函数
- [读书笔记]Ruby元编程 01
- js词法分析
- 嵌入式linux学习第三天.
- Android画图并保存图片
- 新浪微博 android oauth2 code 获取 Token
- ipvsadm命令参考
- 黑马程序员——关于IO流中BufferedReader底层机制
- 在asp.net中备份与还原sqlserver数据库
- java web项目防止多用户重复登录解决方案
- 当Table中td内容为空时,显示边框的办法