javascript引擎、编辑器、作用域之间的合作

来源:互联网 发布:广州恒大淘宝足球俱乐部票务商城 编辑:程序博客网 时间:2024/06/05 10:12

引擎:从头到尾负责js程序编译以及执行过程
编辑器:负责语法分析以及代码生成
作用域:负责收集维护所有声明的变量​
是一套规则,用于管理引擎如何确定在何处以及如何查找变量

实例
如果我们写一段程序
var a =2;

  • 编译器询问作用域是否存在变量a
    • 有,忽略
    • 没有,生成一个叫做a的代码,并生成引擎运行的代码
  • 引擎询问作用域,是否存在a变量
    • 有,赋值
    • 没有,抛出异常(undefined)
  • 作用域中的两种查找方法
    • LHS
      • 查找目的是为了给变量赋值
      • 比如var a=2的过程
    • RHS
      • 查找目的是为了获取变量的值
      • 比如console.log(a)的过程