Qwe*_*rty 0 javascript performance jsperf
为什么逻辑表达式比if-else或inline-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";
}
Run Code Online (Sandbox Code Playgroud)
1并0参见此jsperf测试.因为它确实需要评估是否"t"真实.所述短路表达 return ((val && "t") || "f")可扩展到
var and = val ? "t" : val;
var or = and ? and : "f";
return or;
Run Code Online (Sandbox Code Playgroud)
当然,优化编译器可以静态地确定"t"文字的真实性,并避免做ToBoolean(val)两次,但显然这不是在任何JS引擎中完成的.
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |