【发布时间】:2019-06-10 16:41:10
【问题描述】:
我说的是不需要退货的情况。
例如:
let pos = {'x': 1, 'y': 1};
['x', 'y'].forEach((val) => pos[val] = 2);
我很好奇这个隐式返回是否会影响 forEach 的性能?
如果我们添加花括号(因此函数停止返回表达式的结果),会影响性能吗?
【问题讨论】:
-
基准测试...!?
-
每个 JavaScript 函数都有一个隐式的
undefined返回。所以,即使你不返回任何东西,你实际上是在返回一些值被忽略的东西。很快:不,没有任何性能改进。现代 javascript 引擎足够智能,可以单独执行优化例程,forEach非常优化,因为它是本机代码 -
@CristianTraìna - 不完全是,在规范级别。但在外部,这似乎就是发生的事情。
-
您也可以添加
void关键字以获得相同的效果... -
我还是建议写
for (const val of ['x', 'y']) pos[val] = 2;。
标签: javascript performance arrow-functions