所以我正准备在我们每个不断增长的全局(叹息)列表中添加一个新函数,并注意到最后一个用户使用了一个简单function a(){}
的变量赋值。
function aFunction(){
return null;
}
var bFunction = function(){
return null;
}
我创建了一个test,看它是否有所作为;它确实如此,但却是一个相互冲突的。 (chrome支持简单的功能,而firefox则是变量赋值)。
Firefox :功能创建(90 +%慢)/使用变量赋值创建(最快)
Chrome :功能创建(最快)/使用变量分配创建(70 +%慢)
我理解这是微不足道的,但有没有任何理由存在差异,是否有更好的方法可以做到这一点?
答案 0 :(得分:1)
两者之间的一个区别是它们在浏览器中的行为方式。
无论在代码中调用哪个函数,在第一种情况下定义函数都会有效。在第二种情况下,如果您在定义之前尝试调用它,则会抛出错误。
这个答案更详细地解释了:What is the difference between a function expression vs declaration in JavaScript?
那么哪种方式更可取取取决于用例。
至于浏览器速度的差异,我想这是因为浏览器解析javascript的方式不同。