gri*_*edj 12 javascript performance ecmascript-6 arrow-functions
ES6中的新箭头函数就像一行函数,它使代码更加简洁明了,并且还允许您将调用者的范围保持在函数内部,这样您就不需要做类似的事情var _this = this;
,或者使用该bind
功能等.
使用ES6箭头函数比普通的javascript函数有任何显着的性能提升吗?
Hib*_*u57 13
请记住,对于这个问题不可能有一个普遍的答案,因为所有这些都是依赖于实现的.因此,答案可能是X现在或某些浏览器,并且将来可能是Y或其他浏览器.
这些规定说,这里有一些数据:http://incaseofstairs.com/six-speed.对于现在和主流浏览器,答案是否定的,甚至可能存在性能损失(根据上述规定).
相反:“箭头函数速度较慢”。
从理论角度来看(并非特定于 JavaScript),lambda(箭头函数)是匿名的,因此它们通常在运行时在堆上计算。
这意味着编译器可能无法“内联”对这些 lambda 的调用。与具有更高内联机会的普通自由纯函数相比,这会降低 lambda 的性能。
位于堆上也会给垃圾收集器带来压力。请参阅TypeScript 作者的评论,它解释了为什么箭头函数速度较慢。
基准示例:
箭头方法分别比类方法和自由函数慢 10% 和 60%
https://jsbench.me/g4kjcq9j3s/1