在v8中,箭头的function比普通的独立函数声明更快吗(更高性能,更轻)?

我在问这个问题,因为我和我的同事在编码风格方面有争议,因为他更喜欢箭头函数声明:

const sum = (a, b) => a + b; 

我更喜欢旧式的独立function声明:

 function sum(a, b) { return a + b; } 

我的观点是,旧式的代码更具可读性,可以更清楚地区分函数和variables声明。 他的观点是带有箭头函数的代码运行得更快。

当你使用旧式独立函数声明而不是箭头函数时,你是否知道一些关于实际性能处罚的问题(在v8中)? 罚款是否真的存在?

V8开发者在这里。 对于常规函数声明,箭头函数(大部分)只是“语法糖”。 他们不是更快。

以下显示:

  1. 首先有一个罚款(传统或胖)
  2. Chrome中没有明显的区别
 function goFat() { for (var i = 0; i < 1000000; i++) { var v = ()=>{}; v(); } } function goTraditional() { for (var i = 0; i < 1000000; i++) { var v = function() {}; v(); } } function race() { var start = performance.now(); goTraditional(); console.log('Traditional elapsed: ' + (performance.now() - start)); start = performance.now(); goFat() console.log('Fat elapsed: ' + (performance.now() - start)); start = performance.now(); goTraditional(); console.log('Traditional elapsed: ' + (performance.now() - start)); start = performance.now(); goFat() console.log('Fat elapsed: ' + (performance.now() - start)); console.log('------'); } 
 <button onclick="race()">RACE!</button>