首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数声明比函数表达式更快?

函数声明比函数表达式更快?
EN

Stack Overflow用户
提问于 2011-03-25 14:35:49
回答 1查看 2.7K关注 0票数 15

不同的b/w函数声明和函数表达式在var functionName = function() {} vs函数functionName() {}中描述得很好。

在本文中提到,函数声明是在解析时计算的,函数表达式是在执行阶段计算的。

bytes.com中,人们提到函数声明比函数表达式更快。

我为此创建了一个基本的测试用例:http://jsperf.com/function-declaration-vs-function-expression

函数声明

代码语言:javascript
复制
function myfunc() {
 alert("yo");
}
myfunc();

函数表达式

代码语言:javascript
复制
var myfunc = function() {
 alert("yo");
}
myfunc();

测试表明,函数表达式比函数声明慢90%。

为什么速度有这么大的差别?

编辑

http://jsperf.com/function-declaration-vs-function-expression的结果来看

Chrome, IE9, Opera & Safari ->中,函数声明比函数表达式更快

Firefox, IE7, IE8中,函数表达式比函数声明更快

IE9中,函数声明更快,而在IE7&8中函数表达式更快。是因为JavaScript引擎在IE9中发生了变化,还是有意这么做的?

EN

回答 1

Stack Overflow用户

发布于 2011-03-25 14:40:36

这必须是一个依赖浏览器的问题。如果javascript是一个表达式而不是一个声明,一些浏览器可能会以不同的方式编译javascript,而有些浏览器可能对它们完全相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5433883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档