只有函数可以制造作用域结构,那么只要是代码.就至少有一个作用域,凡是代码中有函数,那么这个函数就构成另一个作用域.如果函数中还有函数,那么这个函数中就又可以诞生一个作用域.
将这样的所有的作用域列出来,可以有一个结构:函数内指向函数外的链式结构.就称作作用域链.
<script> var a=1; function f1(){ function f2(){ function f3(){ console.log(a) } f3(); } f2(); } f1(); var a=3; function f1(){ var a=6; function f2(){ var a=5; function f3(){ var a=4; /*当函数中使用给某个变量时,优先在自己的作用域中查找 如果找不到就会向上一层作用域查找 如果找不到继续往上一层查找,直到全局作用域 如果还找不到直接报错 这就是→作用域链*/ console.log(a) } f3(); } f2(); } f1(); </script>