Javascript 优化是如何工作的?

Javascript 优化是如何工作的?,javascript,node.js,Javascript,Node.js,我创建了一个具有一些属性的对象,并应用了一些函数来执行该对象的一些信息。之后,我又做了同样的手术。 我想知道当我第二次做同样的任务时,效率是如何变化的 const dragonEvents = [ { type: 'attack', value: 12, target: 'player-dorkman'}, { type: 'yawn', value: 40}, { type: 'eat', target: 'horse'}, { type: 'attack', value:

我创建了一个具有一些属性的对象,并应用了一些函数来执行该对象的一些信息。之后,我又做了同样的手术。 我想知道当我第二次做同样的任务时,效率是如何变化的

const dragonEvents = [
  { type: 'attack', value: 12, target: 'player-dorkman'},
  { type: 'yawn', value: 40},
  { type: 'eat',  target: 'horse'},
  { type: 'attack', value: 23, target: 'player-fluffykins'},
  { type: 'attack', value: 12, target: 'player-dorkman'},
]
console.time('firstTimer')
const totalDamageOnDorkman = dragonEvents
  .filter(function (event) {
    return event.type === 'attack'
  })
  .filter(function (event) {
    return event.target === 'player-dorkman'
  })
  .map(function (event) {
    return event.value
  })
console.timeEnd('firstTimer')

console.time('secondTimer')
const totalDamageOnDorkman1 = dragonEvents
  .filter(function (event) {
    return event.type === 'attack'
  })
  .filter(function (event) {
    return event.target === 'player-dorkman'
  })
  .map(function (event) {
    return event.value
  })
console.timeEnd('secondTimer')
效率结果如下所示:

firstTimer: 0.442ms
secondTimer: 0.087ms

问题是,是什么导致了这种效率的提高,我从哪里可以准确地了解到这种机制?

不同的用户代理的实现方式不同,并且实现的任何优化都是本机的。
firstTimer:0.000ms,secondTimer:0.000ms
在chrome上。编译器和特殊优化很可能依赖于。另外,这个话题对一个更一般的问题有点误导。好问题!作为一个完全不相关的点,您可以对匿名函数使用lambda表示法,这些函数只返回一个值
.filter(event=>event.target==='player dorkman')
我在Chrome中没有得到任何有意义的区别,第一个为0.069,第二个为0.070ms。我没有提到,但是我使用Node.js v6.8.1运行我的代码。不同的用户代理的实现方式不同,实现的任何优化都是本机的。
firstTimer:0.000ms,secondTimer:0.000ms
。编译器和特殊优化很可能依赖于。另外,这个话题对一个更一般的问题有点误导。好问题!作为一个完全不相关的点,您可以对匿名函数使用lambda表示法,这些函数只返回一个值
.filter(event=>event.target===“player dorkman”)
我在Chrome中没有得到任何有意义的区别,第一个值为0.069,第二个值为0.070ms。我没有提到,但我使用Node.js v6.8.1运行代码