码迷,mamicode.com
首页 > Web开发 > 详细

关于 js 的作用域的对话过程的理解

时间:2019-09-16 12:04:58      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:成员   举例   说明   访问权限   rip   严格   代码   style   异常   

首先, 这场对话的成员有:

  • 引擎

   负责整个 Javascript 程序的编译和执行过程

  • 编译器

   负责语法分析和代码生成

  • 作用域

   负责收集并维护所有的声明标识符组成的一系列查询, 并制定一套非常严格的规则, 确定当前执行的代码对这些标识符的访问权限


对话, 用 var a = 2; 来举例说明

  1. 遇到 var a, 编译器会问作用域是否有一个 a 名称的变量存在于同一个作用域的集合中. 如果有, 编译器会忽略该声明, 继续进行编译. 否则的话会要求作用域在当前的作用域的集合中声明一个新的变量, 并命名为 a;
  2. 接下来编译器会为引擎生成运行时需要的代码, 这些代码被用来处理 a=2 这个复制操作.(编译器会编译成引擎认识的代码) 接下来引擎在运行的时候也会询问作用域是否有这个变量, 如果有, 引擎直接使用这个变量进行执行就可以. 否则会继续查找该变量.

   如果引擎最终找到了 a 变量, 就会将 2 赋值给他. 否则引擎就会举手示意并抛出一个异常

   [注:] 编译器会进行声明 引擎只做执行

 

关于 js 的作用域的对话过程的理解

标签:成员   举例   说明   访问权限   rip   严格   代码   style   异常   

原文地址:https://www.cnblogs.com/evilr/p/11526392.html

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