js中函数声明与函数表达式的区别
程序员文章站
2022-07-10 21:52:04
...
函数声明:
if(true){
function f1(){
console.log("这是if里声明的函数f1");
}
}else{
function f1(){
console.log("这是else里声明的函数f1");
}
}
f1();
当运行在IE6/7/8中显示:这是else里声明的函数f1
IE浏览器后声明的会把前面声明的覆盖掉,js中没有块级作用域
在Chrome中显示:这是if里声明的函数f1
函数表达式:
var f2;
if(true){
f2=function(){
console.log("这里是if里声明的函数f2");
}
}else{
f2=function(){
console.log("这是else里声明的函数f2");
}
}
f2();
无论是Chrome,还是别的浏览器都显示:这里是if里声明的函数f2