1、作用域
5.1 什么是作用域
作用域呢就是可访问函数,对象,变量的一个集合,他可分为局部作用域和全局作用域
5.2 window,全局作用域,在全局作用域下声明的变量是全局变量
在函数内部 没有声明直接赋值的变量也属于全局变量
5.3 局部作用域和局部变量: 函数内部就是局部作用域, 在函数内部声明的变量就是局部变量
函数的形参也可以看作是局部变量
5.4 作用域访问规则
(1)函数内部可以访问函数外部的变量
(2)函数外部不可以访问函数内部的变量
(3)多个作用域用作用域链进行连接
(4)没有块级作用域(区分作用域以函数作为区分条件)
2、作用域链
<script>
// 作用链: 要访问一个变量, 首先从本函数开始寻找, 找不到,就沿着作用域链一级一级向上找, 一直找到window,若没有,就把报错
var color = '红色';
function getColor() {
var color = '青色';
var color2 = '蓝色';
function test() {
var color3 = '绿色';
console.log(color);
console.log(color2);
console.log(color3);
console.log(color4);
}
test();
}
getColor();
// (2)函数外部不可以访问函数内部的变量
//console.log(color2); // 会报错
</script>