假设我有三个条件: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;
}
哪种技术会更好?
答案 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-少回报。
但是每个人都可以对这样的问题有不同的看法。