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顶级对象动态添加了一个成员

 

 

  

posted @ 2021-10-31 22:18  mythlight  阅读(44)  评论(0)    收藏  举报