9

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

function aFunction(){
    return null;
}

var bFunction = function(){
    return null;
}

我创建了一个测试,看看它是否有所作为;确实如此,但这是一个矛盾的问题。(chrome 喜欢简单的函数,而 firefox 喜欢变量赋值)。

Firefox:函数创建(慢 90% 以上)/使用变量赋值创建(最快)

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

我知道这是微不足道的,但有什么差异的原因吗?有没有更好的方法来做到这一点?

4

1 回答 1

1

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

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

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

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

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

于 2013-05-28T15:07:36.213 回答