JS编程建议——24:优化if逻辑(2)

简介: 24:优化if逻辑(2)

建议24:优化if逻辑(2)
重写if结构后,每次抵达正确分支时最多通过4个条件判断。新的if结构使用二分搜索法将值域分成了一系列区间,然后逐步缩小范围。当数值范围分布在0~10 时,此代码的平均运行时间大约是前面代码的一半。此方法适用于需要测试大量数值的情况,而相对离散值来说switch 更合适。
当然,在性能影响不是很大的情况下,遵循条件检测的自然顺序会更容易阅读。例如,对于检测周一到周五值日任务安排的分支结构来说,虽然周五的任务比较重要,但是这类任务有着明显的顺序,安排顺序结构还是遵循它的自然逻辑比较好。如果打乱条件的顺序,把周五的任务安排在前面,对于整个分支结构的执行性能没有太大的帮助,并且不方便阅读代码。考虑到这一点,按自然顺序来安排结构会更富可读性。
应注意分支之间的顺序优化,当然在同一个条件表达式内部也应该考虑逻辑顺序问题。在执行逻辑“与”或逻辑“或”运算时,有可能会省略右侧表达式的计算,如果希望不管右侧表达式是否成立都进行计算,就应该考虑逻辑顺序问题。例如,有两个条件a和b,其中条件a多为true,b就是一个必须执行的表达式,那么下面的逻辑顺序设计就欠妥当:

  1. if(a && b){
  2. }
    如果条件a为false,则JavaScript会忽略表达式b的计算。如果b表达式影响到后面的运算,那么不执行表达式b自然会对后面的逻辑产生影响,这时可以采用下面的逻辑结构,在if结构前先执行表达式b,这样即使条件a的返回值为false,也能够保证表达式b被计算。
  3. var c = b;
  4. if(a && b){
  5. }
相关文章
|
1月前
|
前端开发 JavaScript 开发者
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
|
1月前
|
存储 JavaScript 编译器
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!
|
1月前
|
小程序 JavaScript 前端开发
【微信小程序】--WXML & WXSS & JS 逻辑交互介绍(四)
【微信小程序】--WXML & WXSS & JS 逻辑交互介绍(四)
|
1月前
|
JavaScript 前端开发
在JavaScript中,如何优化原型链的性能?
在JavaScript中,如何优化原型链的性能?
16 2
|
1月前
|
JavaScript 前端开发
编程笔记 html5&css&js 079 JavaScript 循环语句
编程笔记 html5&css&js 079 JavaScript 循环语句
|
1月前
|
JavaScript 前端开发 开发者
编程笔记 html5&css&js 078 JavaScript 条件判断语句
条件判断语句是首先要接触的语句。通过条件判断来执行不同的代码块。
|
1月前
|
JavaScript 前端开发 编译器
编程笔记 html5&css&js 077 Javascript 关键字
编程笔记 html5&css&js 077 Javascript 关键字
|
1月前
|
JavaScript 前端开发
编程笔记 html5&css&js 076 Javascript 表达式
编程笔记 html5&css&js 076 Javascript 表达式
|
1月前
|
存储 JavaScript 前端开发
编程笔记 html5&css&js 075 Javascript 常量和变量
编程笔记 html5&css&js 075 Javascript 常量和变量
|
1月前
|
JavaScript 前端开发 程序员
编程笔记 html5&css&js 074 Javascript 运算符
编程笔记 html5&css&js 074 Javascript 运算符