不多说,先附上测试代码
测试代码
if语句
function fn1(num) {
if (num == 1) {
return 1;
} else if (num % 2 == 0) {
return fn1(num / 2);
} else {
return fn1(num * 3 + 1);
}
}
console.time("if语句");
for(let i=0;i<=10000;i++){
fn1(1.15456456e100);
}
console.timeEnd("if语句");
三元表达式
function fn2(num) {
return num == 1 ? 1 : (num % 2 == 0 ? fn1(num / 2) : fn1(num * 3 + 1));
}
console.time("三元表达式");
for(let i=0;i<=10000;i++){
fn2(1.15456456e100);
}
console.timeEnd("三元表达式");
if语句执行结果
三元表达式执行结果
结论
从测试结果上来看,三元表达式和if语句在性能上并没有明显的差异