- 作用域:变量的可访问范围,分为 全局作用域、函数作用域、块级作用域。
- 作用域链:变量查找机制,从当前作用域 逐级向上查找,直到全局作用域或
ReferenceError
。 - ES6 关键点:
- let / const 具有块级作用域,避免
var
变量提升带来的问题。 - 使用 let 声明的变量不会挂在全局对象 window 上
- 闭包 利用作用域链,保留外部作用域的变量。
- let / const 具有块级作用域,避免
var a = 'global'
function outer() {
var b = 'outer'
function inner() { var c = 'inner' console.log(a, b, c) // ✅ global outer inner }
inner()}
outer()
console.log(b) // ❌ ReferenceError: b is not defined