JavaScript深入学习——执行上下文、作用域与作用域链
JavaScript代码的整个执行过程,分为两个阶段,代码编译阶段与代码执行阶段。编译阶段由编译器完成,将代码翻译成可执行代码,这个阶段作用域规则会确定。执行阶段由引擎完成, 主要任务是执行可执行代码,执行上下文在这个阶段创建。
作用域
作用域规定了如何查找变量/函数,也就是确定当前执行代码对变量/函数的访问权限,目的是为了提高程序的可靠性和减少命名冲突。相当于给变量/函数划定了区域,只有在区域内才能访问,出了这个区域就不能访问了。
JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。因此变量/函数的作用域在定义时就已经确定了。
let a = 1
function fn() {
let a = 2
inner()
}
function inner() {
console.log(a)
}
fn() // ===> 1
作用域分为以下几种:
全
共有 0 条评论