【高性能JavaScript】读书笔记 - 算法和流程控制(二) - 09
2017-03-22 15:19
417 查看
【简介】if-else 和 switch 的选择更多的是从易读性的角度出发,然后是一些技巧性的提高代码的效率。
当条件较少时,if-else 更易读;而当条件比较多时,switch 更易读。
这是从大吗的易读性的角度考虑来选择哪种条件表达式,一旦选定了一种条件表达式,我们就需要从优化的角度来考量代码的效率,从而提高脚本的性能。
优化 if-else 的目标是:最小化到达正确分支所需判断的条件数量。把最可能出现的条件放在首位,考虑如下代码:
这段程序中,触发 value 值小于 5 的概率应该是最大的,其次是 value 值在 5 到 10 之间的情况,最后是其他情况,这样可以最小化判断的次数。if-else 中的条件语句应该总是按照从最大概率到最小概率的顺序排列,以确保运行速度最快。
另一种优化条件语句的最佳方案是避免使用 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; }
附: 欢迎大家关注我的新浪微博 - 一点编程,了解最新动态 。
相关文章推荐
- 【高性能JavaScript】读书笔记 - 算法和流程控制(一) - 08
- 高性能JavaScript笔记二(算法和流程控制、快速响应用户界面、Ajax)
- 高性能javascript-算法和流程控制笔记
- 高性能Javascript【四】算法和流程控制
- 高性能Javascript【四】算法和流程控制高性能Javascript【五】字符串和正则表达式
- 高性能JS笔记4——算法和流程控制
- 《高性能javascript》读书笔记:第四章 算法和流程控制
- javascript 性能分析:算法和流程控制
- JavaScript中如何优化算法和流程控制
- 高性能JavaScript 循环语句和流程控制
- 高性能JavaScript 循环语句和流程控制
- 【JavaScript 基础】03 流程控制语句
- 黑马程序员————基本算法,流程控制
- JavaScript语言基础-数据运算和流程控制
- javascript学习(2)——[基础回顾]运算符、表达式、流程控制语句
- 《C#入门经典(第6版)》读书笔记4_第四章:流程控制
- javascript语法之流程控制语句
- 【零基础学习iOS开发】【02-C语言】09-流程控制
- JavaScript之流程控制
- JavaScript系统学习之一 <基本语法,运算符,流程控制语句>