江苏科技大学新校区建设网站人社部能力建设中心网站
web/
2025/9/26 20:13:42/
文章来源:
江苏科技大学新校区建设网站,人社部能力建设中心网站,营销型网站方案ppt模板,长治网站建设培训文件引擎#xff1a;负责整个js程序的编译和执行过程编译器#xff1a;负责语法分析和代码生成作用域#xff1a;收集和维护一系列查询#xff08;由所有声明的标识符组成#xff09; 【例子#xff1a;声明一个变量并赋值 var a value#xff1b;】 Step1.编译器对该程序段… 引擎负责整个js程序的编译和执行过程编译器负责语法分析和代码生成作用域收集和维护一系列查询由所有声明的标识符组成 【例子声明一个变量并赋值 var a value】 Step1.编译器对该程序段分解成词法单元 var 、a、 、 value、; Step2.编译器对以上的词法单元解析成一个树结构抽象语法树ASTjavascript的语法解析器Espsrima提供了一个在线解析的工具 在过程中编译器询问作用域是否已经存在一个以a命名的变量在同一个作用域的集合中若YES - 编译器忽略该声明继续编译若NO - 编译器要求作用域在当前作用域的集合中声明一个新变量命名为a Step3.编译器生成处理 赋值操作“a 2”的代码 Step4.引擎运行step3生成的代码时会询问作用域在当前作用域的集合中是否存在一个叫a的变量若YES - 引擎使用变量a -Step5若NO - 引擎沿着作用域链继续查找变量a -Step6 Step5.引擎执行编译器生成的代码把2赋值给变量a Step6.引擎抛出一个异常 【总结】变量的赋值会经过两个阶段1.编译器在作用域中声明一个变量若之前未声明过2.运行时引擎在作用域中查找该变量 【扩展】Step4中引擎查询变量有两种类型LHS 和 RHSLHS: 找到变量的容器本身RHS:找到变量的值 例子 function foo(a){var b a;return ab}
var c foo(2);//在该例子中LHS有a 2 、c 、b
//RHS有foo(2)、 a、a、b
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82366.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!