1、作用域

5.1 什么是作用域

  1. 作用域呢就是可访问函数,对象,变量的一个集合,他可分为局部作用域和全局作用域

5.2 window,全局作用域,在全局作用域下声明的变量是全局变量
在函数内部 没有声明直接赋值的变量也属于全局变量
5.3 局部作用域和局部变量: 函数内部就是局部作用域, 在函数内部声明的变量就是局部变量
函数的形参也可以看作是局部变量
5.4 作用域访问规则

  1. (1)函数内部可以访问函数外部的变量
  2. (2)函数外部不可以访问函数内部的变量
  3. (3)多个作用域用作用域链进行连接
  4. (4)没有块级作用域(区分作用域以函数作为区分条件)

2、作用域链

  1. <script>
  2. // 作用链: 要访问一个变量, 首先从本函数开始寻找, 找不到,就沿着作用域链一级一级向上找, 一直找到window,若没有,就把报错
  3. var color = '红色';
  4. function getColor() {
  5. var color = '青色';
  6. var color2 = '蓝色';
  7. function test() {
  8. var color3 = '绿色';
  9. console.log(color);
  10. console.log(color2);
  11. console.log(color3);
  12. console.log(color4);
  13. }
  14. test();
  15. }
  16. getColor();
  17. // (2)函数外部不可以访问函数内部的变量
  18. //console.log(color2); // 会报错
  19. </script>