您的位置:首页 > Web前端 > JavaScript

js中函数声明提升理解

2017-05-18 16:04 162 查看
js函数的定义两种方式:函数声明和函数表达式

函数声明

函数调用可以在函数声明之前

test();
function test(){
alert("this is a test funciton");
}


这是因为js在代码执行之前会先加载函数声明

函数表达式

test();
var test = function(){
alert("this is a test");
}


以上代码则会报错,提示未声明先调用

理解函数声明提升的关键就是理解函数声明和函数表达式之间的区别

if(condition){
funciton test(){
alert("condition is true");
}
}else{
function test(){
alert("condition is false");
}
}


此处是函数声明,test()函数会被提升,而不同的浏览器提升机制不一致,导致有可能只执行第二个test()函数。因此以上例子应该使用函数表达式

if(condition){
test = funciton(){
alert("condition is true");
}
}else{
test = function(){
alert("condition is false");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: