变量
编程语言中最基础的功能就是 变量,存储和访问 变量 的能力将 状态 带给了程序。
问题是:变量存储在哪里?更重要的是程序如何找到他们?
说明需要设计一套良好的规则来存储变量,并方便找到他们,这就是 作用域 。
传统编译语言
程序中的一段源代码经过三个步骤,统称 编译:
- 词法分析:
将每一段代码分解成有意义的代码块
比如var = 1分解成var、=、1。 - 语法分析
这个过程将词法单元流转换成一个代表程序语法结构的树,称为抽象语法树,
比如VariableDeclaration节点下面包含一个Identifier = var和AssignmentExpression节点,
而AssignmentExpression又包含了NumericLiteral = 1节点。 - 代码生成
将抽象语法树转换成可执行代码,这个过程和语言、目标平台紧密相关。
简单来说就是有某种办法可以让var = 1的抽象语法树变成一系列机器指令来执行这个操作。
JavaScript 引擎
- JavaScript 引擎在
语法分析和代码生成过程中有特定的步骤对运行性能进行优化。 - JavaScript 引擎没有大量的时间进行优化,编译过程不是发生在构建之前的。
通常JS代码片段在执行前进行编译,进行编译以后就会做好执行他的准备,并马上执行。
文章探讨了编程中的变量存储和访问,特别是在传统编译语言和JavaScript引擎中的处理方式。传统编译语言经历词法分析、语法分析和代码生成三个步骤,而JavaScript引擎在执行前编译并优化代码,重点关注运行性能。作用域是管理和查找变量的关键规则。
133

被折叠的 条评论
为什么被折叠?



