function对象
var fi;
if(ture){
f1= function()
console.log("if里声名的函数f1");
}else{
f1= function(){
console.log("else里声明的函数f1");
}
}
f1();
采用函数表达式的形式来声明,不管在Chrome还是在IE版本中得到的结果都是“这里是if 的函数”。
js没有块级作用域;
js的作用域分为全局作用域,函数作用域,即只有function能产生作用域;
js里的函数的作用域,被称为词法作用域
1 var a=123; 2 function f1(){ 3 console,log(a); 4 } 5 function f2(){ 6 var a =456; 7 f1(); 8 } 9 f1(); 10 f2();
词法作用域
即函数在哪里声明的,它的作用域就在哪里。
所以f1,f2结果都是123
tips:在script中,直接声明的变量,函数,对象,都是全局的作用域,其本质是给Window这个BOM顶级对象动态添加了一个成员
浙公网安备 33010602011771号