0%

JavaScript 函数作用域和声明提前

JavaScript的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的,并且在JavaScript函数里声明的所有变量都被“提前”值函数体的顶部。
例1

1
2
3
4
5
6
7
8
9
10
11
function test(o){
var i = 0;
if(type0f == "object"){
var j = 0;
for(var k=0; k<10; k++){
console.log(k); //输出数字0 ~ 9
}
console.log(k); //k = 10
}
console.log(j); //j = 0
}

例2

1
2
3
4
5
6
var scope= "global";
function f(){
console.log(scope); //undefined
var scope = "local";
console.log(scope); //local
}