以下哪种技术更好?

时间:2011-10-04 16:14:39

标签: javascript coding-style

假设我有三个条件:Condition1,Condition2,Condition3。 如果满足所有条件,则方法/函数返回true,否则返回false。

技术一:

     function check(){
        if(Condition1 is true AND Condition2 is true AND Condition3 is true){
           return true;
        }
        return false;
     }

技术二:

      function check(){
         if(Condition1 is false){
             return false;
         }
         if(Condition2 is false){
             return false;
         }
         if(Condition3 is false){
             return false;
        }

         return true;
      }

哪种技术会更好?

8 个答案:

答案 0 :(得分:5)

“更好”是主观的。

return (Condition1 && Condition2 && Condition3); // "Better" yet?

取决于非设计代码中的可读性和可维护性。

就个人而言,我很想尽早回来,当这样做时会增加可读性。

答案 1 :(得分:2)

function check(){
    return (Condition1 && Condition2 && Condition3);
}

我认为在方法中使用唯一的return语句会更好。

答案 2 :(得分:2)

我会使用技巧3:

 function check() {
    return Condition1 && Condition2 && Condition3;
 }

无需与true进行比较,甚至不需要if阻止。

答案 3 :(得分:1)

顶部更好,无论如何都会短路。这意味着如果condition1为false,它将不会检查condition2或condition3,因此您不会使用第二种方法保存任何内容。

另外,跳过“是真”位,你可以这样做:

return (Condition1 && Condition2 && Condition3)

答案 4 :(得分:0)

function check() {
  return condition1 && condition2 && condition3;
}

最简单的解决方案是找到布尔值并表达并返回该值。

最佳解决方案可能是以下

function check() {
    var usefulConditionName = /* long condition */;
    var secondUsefulConditionName  = /* long condition */;

    return (usefulConditionName &&
        secondUsefulConditionName);
}

答案 5 :(得分:0)

我通常认为代码和重复越少越好。我可能会去

function check()
{
    return Condition1  AND Condition2  AND Condition3 ;
}

答案 6 :(得分:0)

都不是。最好的选择是直接返回表达式的值。没有必要更冗长。此外,JavaScript没有AND运算符,它有&&

function check() {
   return Condition1 && Condition2 && Condition3;
}

答案 7 :(得分:0)

恕我直言,我更喜欢第一种技术,因为: 1-减少代码行 2-少回报。

但是每个人都可以对这样的问题有不同的看法。