作用域(scope)表示变量的作用范围、可见区域,包括词法作用域和执行作用域。
- 词法作用域:根据代码的结构关系来确定作用域。词法作用域是一种静态的词法结构,JavaScript解析器主要根据词法结构确定每个变量的可见性和有效区域。
- 执行作用域:当代码被执行时,才能够确定变量的作用范围和可见性,与词法作用域相对,它是一种动态作用域。函数的作用域会因为调用对象不同而发生变化。
【注意】
JavaScript支持词法作用域,JavaScript函数只能运行在被预先定义好的词法作用域里,而不是被执行的作用域里。