西红柿爱番茄

Feed Rss

避免丑陋的if逻辑的新技巧

07.30.2010, Javascript, by .

我写代码时对if逻辑是比较反感的,说不出原因,用户体验不爽,因此总会使用三元运算符来规避if逻辑,看起来代码量少,简洁。对于操作单条的代码,这种方式就可以很容易的使用三元运算符来替换,比如:
[javascript]
if(flag){
doSth();
}else{
doAnotherSth();
}
//可以替换为:
flag ? doSth() : doAnotherSth();
[/javascript]
单条的很容易,但是对于多条操作语句呢?这时候该怎么来避免使用if。答案还是从三元运算符中找,例如:
[javascript]
if(flag){
c = "ss";
d ="none";
e.style.display="block";
}else{
c = "cc";
d ="normal";
e.style.display="none";
}
//这个时候,还是可以通过一点小技巧来实现的:
flag ? ( c = "ss",d="none",e.style.display="block") : (c = "cc",d="normal",e.style.display="none");
[/javascript]
各个操作语句之间使用逗号“,”组合起来,再加上小括号,就可以执行了。为此,可以较少一些字节,也使得代码简洁起来。

避免丑陋的if逻辑的新技巧 有 6 条回应

  1. 2010-07-30 在 23:42 番茄不是西红柿

    周爱民的书中有很大的篇幅关于这个的。
    http://book.csdn.net/bookfiles/641/10064120471.shtml

  2. 2010-07-31 在 00:12 Supersha

    “函数式语言重在“运算”,所以应该使用连续的运算来代替if之类的结构语句”,还是你说的直接点

  3. 第一次来,总得留个脚印先,祝你的博客越办越好,内容越来越丰富!

  4. 为啥说if是丑陋地捏。。。if也还好啊。可读性不错

  5. 2010-07-31 在 18:10 Supersha

    一连串的if下来,代码看起来不爽

  6. 这叫做三目运算...哦了?
    我的前端站点:http://www.web666.net
    Dom原创手册:http://www.web666.net/dom

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>