作用域
在深入学习JavaScript作用域之前,首先要了解一下,究竟什么是作用域。几乎所有的编程语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。
我们先了解一下JavaScript的工作原理,引擎,编译器,作用域三者是如何协同工作来完成javascript代码的执行的。
引擎:从头到尾负责整个JavaScript程序的编译及执行过程。
编译器:负责词法分析及代码生成
作用域:负责收集并维护由所有声明的变量组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些变量的访问权限。
我们看下最简单的var index = 10;了解一下引擎、编译器和作用域是如何协同工作的。
JS会将其看成是两个声明,第一个是定义声明:编译器在编译阶段执行。第二个是赋值声明:由引擎在运行时执行。
因此可以分解为:
|