如题,在写代码的时候会遇到各种的判断情况,如果使用if语句的话,会使自己的代码变长而且也不易读。
请问大家在写代码的时候通过什么方法来减少if语句的使用呢?
谢邀。前面已经回答的很好了。方法有很多,具体使用也应视业务而定。
1.if多的情况下使用switch 代码美观。
2.减少代码行数:
三目 condition ? expression1 : expression2;
&& result = expression1 && expression2 //如果expression1的计算结果为false,则result为expression1。否则result为expression2
|| data = undefined || backup_data; //一般用于容错,简写if,请求出错,数据为undefined时,就去备用数据backup_data
3.很多时候业务原因是逃不了用if的,而且它也不错^_^。把代码逻辑简化就可以少if嵌套。至于通用的话,可以考虑设计模式以及函数。
如果使用if语句的话,会使自己的代码变长而且也不易读
这个描述是不太准确的。对稍微复杂一点的逻辑而言,if在可读性上我感觉是最好的选择。对于一般的简单判断逻辑,&&可以代替if。对于一般的简单if else语句或者多重嵌套但是简单的if else语句,可以用三目运算。你可以看看JQ的源码,里面用if的频率比&&和三目加起来都多。
另外补充下其他几位朋友提到的通过函数和对象的方式去掉if,针对这个我想说的是,这个本身就不是if的缺点,而是他本身就不该用if来做,就该用过函数或者对象的方式去解决。就好比你非要用铅笔刀削苹果,然后说不能很好的削苹果是铅笔刀的缺点一样。
流程控制是语句 (Statement),不建议这样 is && fn()
, not || fn()
, ternary is ? fn1() : fn2()
在流程中用操作符。
老老实实 if 吧。
上面讲了很多的写法,最常见的有三元表达式。我补充些我自己写单个判断时的例子: 1, var i= 5 ;if(i<6) return i; 2, var i= 5 ; i<6 && return i; 说白了有时我不是很喜欢写 { } 这个代码块符号。
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
以下是我常用的一些
if
操作改写情况,看看是否对你有帮助。传统switch改写
三元运算符替换
逻辑判断改写
对象属性改写