js的作用域有三种: 全局作用域, 函数作用域 和块级作用域
1. 全局作用域
1. window对象的内置属性拥有全局作用域,例如window.name、window.location等。
2. 声明在函数外部的变量,在代码中任何地方都能访问到的对象拥有全局作用域
3. 末定义直接赋值的变量拥有全局作用域
2.函数作用域
声明在函数内部的变量,外部访问不到.只有在函数内可以访问. 这种作用域称为函数作用域
3.块级作用域
块级作用域通过let和const实现。
function fun(){
if(true){
let i = 0;
console.log(i);//0
}
console.log(i);//i is not defined,
};
fun();
// 因为let声明的变量具有块级作用域的特性,所以在if这个大括号内可以访问到。if这个大括号外不行