正如问题所示,我应该何时使用
示例A(函数声明):
function abc(){
// some code
}
abc();
over Example B(函数表达式):
var abc = function(){
// some code
}
abc();
反之亦然。
我知道他们的性质不同但他们基本上只做同样的事情(如果他们不是,请纠正我),对吧?
那么如何判断我应该使用哪一个?
编辑:
我知道对于例A,无论何时由于吊装都可以调用该函数。
我真正想知道的是让您决定使用示例A或示例B的原因。
答案 0 :(得分:1)
如果要在定义函数之前调用abc()
,则只有第一个模式可用。
变量声明也会被提升,但不会被赋值,所以它将是未定义的,而函数已经完成了它的正文。
我想只有在我打算稍后重新分配它时才会使用var
模式。
答案 1 :(得分:0)
通常,您应该尽可能使用函数声明语法。最好的理由是,如果在使用代码后在代码中定义函数,代码仍然有效。
stuff();
function stuff() {
console.log("hello");
}
会奏效,但
stuff();
var stuff = function() {
console.log("hello");
}
不会。
当您将匿名函数传递给另一个函数时,使用函数表达式。
doSomething(function() {
console.log("done");
});
否则,两者都有效。