作用域
- 作用域:限制某个变量在某个区域内有效
- 作用域分为 全局作用域 和 局部作用域
var num = 1; // 全局
function getMumber(){
var num = 2; // 局部
};
console.log(num); // 1
// 括号内定义的作用域不都是局部作用域
// 1.
var num = 1;
if(true){
var num = 2;
};
console.log(num) // 2
// 2.
for (var i = 0; i < 5; i++) {
break;
}
console.log(i)
// 3.
var i = 3;
while(i<5){
i++;
break;
};
console.log(i) // 4
作用域链
var num1 = 1;
var num2 = 2;
var num3 = 3;
function getNumber(){
num1 = 11; // 全局
var num2 = 22; // 局部
console.log(num1); // 11
console.log(num2); // 22
console.log(num3); // 3
}
getNumber();
console.log(num1); // 11
console.log(num2); // 2
声明提升
var num1 = 1;
function getNumber(){
console.log(num1); // undefined
console.log(fun()); // undefined
var num1 = 2; // 局部变量
function fun(){ // 函数的提升比变量更优先
return num1;
}
console.log(fun()); // 2
}
getNumber();
console.log(num1); // 1
网友评论