《你不知道的JavaScript(上)》笔记——做用域是什么

Javascript是一门编译语言,它不是提早编译的, 编译结果也不能在分布式系统中进行移植。编程

在传统编译语言的流程中, 程序中的一段源代码在执行以前会经历三个步骤, 统称为“编译”:数组

  1. 分词/词法分析(将由字符组成的字符串分解成(对编程语言来讲) 有意义的代码块, 这些代
    码块被称为词法单元 )
  2. 解析/语法分析 (将词法单元流(数组) 转换成一个由元素逐级嵌套所组成的表明了程序语法
    结构的树。 这个树被称为“抽象语法树”(Abstract Syntax Tree, AST)。 )
  3. 代码生成(将 AST 转换为可执行代码的过程称被称为代码生成。 )

1557241575185

做用域是根据名称查找变量的一套规则,由于会存在做用域嵌套的状况,引擎从当前的执行做用域开始查找变量, 若是找不到,就向上一级继续查找。 当抵达最外层的全局做用域时, 不管找到仍是没找到, 查找过程都会中止。编程语言

ReferenceError 同做用域判别失败相关, 而 TypeError 则表明做用域判别成功了, 可是对结果的操做是非法或不合理的。分布式

相关文章
相关标签/搜索