JavaScript三元表达式与if语句的性能对比

不多说,先附上测试代码

测试代码

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语句在性能上并没有明显的差异

你可能感兴趣的:(JavaScript三元表达式与if语句的性能对比)