1.1局部作用域(函数作用域):
声明在函数内部的变量【函数内部的作用域】
1.2全局作用域:
在代码中任何地方都能访问到的对象拥有全局作用域【整个script(函数外的作用域)】
1.3块作用域:
大括号里面的代码块
- 块级变量类似于局部变量,for(){},if(){}都是块作用域
- js包括:ECMAScript,BOM,DOM
★★★★★块级作用域的特点
- 声明变量不会提升到代码块顶部
function fn(condition) {
if (condition) {
let num = 1;
console.log(num);
} else {
num++;
console.log(num);
}
}
fn(0);//报错
fn(1);//1
- 禁止重复声明
//**********会出错**************
var num = 1;
let num = 2;
//**********不会出错**************
var num = 1;
if (haha) {
let num = 2;
}
局部变量,外边不能用,函数自己不会执行,需要调用,当我们执行函数时, 会在内存中开启新的作用域空间,称之为新的空间,或者局部作用域,函数运行的过程中,内存里有这个变量,但是当这个函数执行完,就会关闭新的作用域空间,关空间的同时把变量销毁,
作用域链:变量查找机制(从内向外)
function fn(){
let n=3;//局部
function f1(){
let n=123;
}
f2();
}
fn();
console.log(num)//自己有用自己的,自己没有往上找