您的位置:首页 > Web前端 > JavaScript

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

2017-03-22 15:19 417 查看
【简介】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;
}


附: 欢迎大家关注我的新浪微博 - 一点编程,了解最新动态 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: