【高性能JavaScript】读书笔记 - 算法和流程控制(二) - 09


【简介】if-else 和 switch 的选择更多的是从易读性的角度出发,然后是一些技巧性的提高代码的效率。

2. 条件语句(Conditions)

使用 if-else 还是 switch ,一般就要测试条件的数量来判断:条件数量越大,越倾向于使用 switch 而不是 if-else。

if (con) {
    // 代码处理
} else {
    // 其他代码处理
}

switch (con) {
    case true:
        // 代码处理
        break;
    default:
        // 其他代码处理
}

当条件较少时,if-else 更易读;而当条件比较多时,switch 更易读。

if (color == "red") {
    // 代码处理
} else if (color == "blue") {
    // 代码处理
} else if (color == "black") {
    // 代码处理
} else if (color == "brown") {
    // 代码处理
} else {
    // 代码处理
}

switch (color) {
    case "red":
        // 代码处理
        break;
    case "blue":
        // 代码处理
        break;
    case "black":
        // 代码处理
        break;
    case "brown":
        // 代码处理
        break;
    default:
        // 代码处理
}

这是从大吗的易读性的角度考虑来选择哪种条件表达式,一旦选定了一种条件表达式,我们就需要从优化的角度来考量代码的效率,从而提高脚本的性能。

优化 if-else 的目标是:最小化到达正确分支所需判断的条件数量。把最可能出现的条件放在首位,考虑如下代码:

if (value < 5) {
    // 代码处理
} else if (value > 5 && value < 10) {
    // 代码处理 
} else {
    // 代码处理
}

这段程序中,触发 value 值小于 5 的概率应该是最大的,其次是 value 值在 5 到 10 之间的情况,最后是其他情况,这样可以最小化判断的次数。if-else 中的条件语句应该总是按照从最大概率到最小概率的顺序排列,以确保运行速度最快。

另一种优化条件语句的最佳方案是避免使用 if-else 和 switch。比如对于这样一段代码:

switch (value) {
    case 0:
        return result0;
    case 1:
        return result1;
    case 2:
        return result2;
    case 3:
        return result3;
    case 4:
        return result4;
    case 5:
        return result5;
    case 6:
        return result6;
    default:
        return result7;
}

附: 欢迎大家关注我的新浪微博 - 一点编程,了解最新动态 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值