在JavaScript中,词法环境和执行上下文是两个重要的概念,它们在代码执行过程中起着关键的作用。本文将详细介绍这两个概念,并提供相应的源代码示例。
词法环境(Lexical Environment)
词法环境是指在代码执行期间,变量和函数标识符与特定的标识符绑定之间的关系。它由一个环境记录(environment record)和一个指向外部环境的引用组成。环境记录是一个存储变量和函数声明的地方,而外部环境引用指向包含当前环境的外部环境。
JavaScript中的词法环境可以分为全局环境和函数环境。全局环境是在代码执行之前创建的,它包含了全局变量和函数声明。函数环境则是在函数被调用时创建的,它包含了函数的参数、局部变量和函数声明。
下面是一个示例代码,演示了词法环境的概念:
var x = 10;
function foo() {