首页 > 解决方案 > js中的流控会影响性能吗

问题描述

检查预定的布尔值是真还是假会影响性能吗?或者这样的代码是否被优化为 2 个不同的实现(考虑 V8 和 SpiderMonkey)?

示例 1

let predeterminedBool = Math.random() < .5

callsCalbacksOften(() => {
  if (predeterminedBool) console.log("Task A")
  else console.log("Task B")
})

示例 2

let predeterminedBool = Math.random() < .5
let chosenCallback

if (predeterminedBool) chosenCallback = () => {
  console.log("Task A")
}
else chosenCallback = () => {
  console.log("Task B")
}

callsCalbacksOften(chosenCallback)

大型(就代码行而言)任务的示例变得非常庞大。导致基本上复制的代码(针对这一条件执行)。尽管示例 2 似乎更有效。那么,示例 1 是否比示例 2 慢?如果是,有任何显着数额吗?还是这只是对js语法的认知?

PS:这对可以应用类似概念的其他语言(如java)的翻译效果如何?

标签: javascriptperformancecontrol-flow

解决方案


推荐阅读