1. 理解
    • 多个上下级关系的作用域形成的链, 它的方向是从下向上的(从内到外)
    • 查找变量时就是沿着作用域链来查找的
    1. 查找一个变量的查找规则
    • 在当前作用域下的执行上下文中查找对应的属性, 如果有直接返回, 否则进入2
    • 在上一级作用域的执行上下文中查找对应的属性, 如果有直接返回, 否则进入3
    • 再次执行2的相同操作, 直到全局作用域, 如果还找不到就抛出找不到的异常

      1. var a = 2;
      2. function fn1() {
      3. var b = 3;
      4. function fn2() {
      5. var c = 4;
      6. console.log(c);//4
      7. console.log(b);//3
      8. console.log(a);//2
      9. console.log(d);//undefined
      10. }
      11. fn2();
      12. }
      13. fn1();

      image.png