gpt4 book ai didi

javascript - 为什么 `exp && "t"|| "f"` 比 inline-if-else 慢很多?

转载 作者:行者123 更新时间:2023-11-28 11:33:55 27 4
gpt4 key购买 nike

为什么逻辑表达式if-elseinline-if-else慢两倍?

function logicalExp(val) {
return val && "t" || "f";
}

function inlineIfElse(val) {
return val ? "t" : "f";
}

function ifElse(val) {
if (val) return "t";
else return "f";
}
  • 所有函数的计算结果都相同。
  • 所有函数都从 10 数组传递值,请参阅此 jsperf test .

最佳答案

因为它确实需要评估“t”是否真实。 short-circuit expression return ((val && "t") || "f") 可以扩展为

var and = val ? "t" : val;
var or = and ? and : "f";
return or;

当然,优化编译器可以静态确定 "t" 文字的真实性,并避免执行两次 ToBoolean(val) ,但显然这并没有完成在任何 JS 引擎中。

关于javascript - 为什么 `exp && "t"|| "f"` 比 inline-if-else 慢很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com