为什么将一个函数分配给var与简单定义它不同?

Phi*_*per 9 javascript

所以我只是要在我们每个不断增长的全局列表(叹息)中添加一个新函数,并注意到最后一个用户使用了一个简单的变量赋值function a(){}.

function aFunction(){
    return null;
}

var bFunction = function(){
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个测试,看看它是否有所作为; 它确实如此,但却是一个相互冲突的.(chrome支持简单的功能,而firefox的变量赋值).

Firefox:功能创建(90 +%慢)/创建变量赋值(最快)

Chrome:功能创建(最快)/使用变量赋值创建(70 +%慢)

我明白这是微不足道的,但有任何理由存在差异,是否有更好的方法来做到这一点?

Sch*_*eis 1

两者之间的区别之一是它们在浏览器中的行为方式。

无论在代码中的哪个位置调用该函数,在第一种情况下定义该函数都将起作用。在第二种情况下,如果您尝试在定义它之前调用它,则会抛出错误。

这个答案更详细地解释了:JavaScript 中的函数表达式与声明有何区别?

因此哪种方式更可取取决于用例。

至于浏览器速度的差异,我想这是由于浏览器解析 JavaScript 的方式不同造成的。


归档时间:

查看次数:

163 次

最近记录:

12 年,7 月 前