全局作用域
script
标签所在的区域就是所谓的全局作用域,全局作用域有一个全局的对象 window
我们所有定义的变量,函数,类,对象等等都是作用域 window
对象身上的
var a = 1
// 就是在window 对象上加上一个 a 属性
局部作用域(特指函数作用域)
function foo(a) {
console.log(a)
}
foo(2)
会产生一个局部作用域,暂且叫做 fooScope, 这个作用域里面存储着这个局部作用域里面的所有变量定义,函数定义,对象定义等等。值得注意的是,全局作用域 globalScope 总是被我们忽视了,局部作用域是可以访问全局作用域的。
所以
globalScope(顶层)
|
|
fooScope(当前)
发出疑问
-
既然局部作用域能够访问全局作用域的变量,那么局部作用域能不能修改全局作用域变量的值呢?