为什么使用IF ... ELSE如果IF语句结束函数?

时间:2012-10-26 08:25:20

标签: javascript function if-statement

在可读性之外使用if ... else是否有好处?

例如,如果我有一个功能:

function a(b){
  if(b=="c"){
    return true
  }else{
    return false
  }
}

我不能这样压缩它:

function a(b){
  if(b=="c"){
    return true
  }
  return false
}

只要b ==“c”,返回false就不会触发,但它不需要else语句。

我已经多次遇到这种情况,而且我总是选择更精简的版本(主要是为了节省写作更多)。对于这样的例子,是否有理由将else语句包含在可读性之外?

5 个答案:

答案 0 :(得分:1)

function a(b) { return b == "c";}

稍后编辑:

如果你的“if”中有“return”语句,你可以省略“else”语句,因为。

答案 1 :(得分:1)

在给定的例子中,没有实际差异。我发现最好使用return语句来过滤掉所有不正确的输入结果或可能的错误,以保存函数体免于过度标识。

答案 2 :(得分:1)

else通常return被认为是多余的,但是,当“是”和“否”分支在某种意义上相似时,最好将它们保持在相同的缩进级别,为此对称性比较:

// confusing

if (spam.exists()) {
    $(box).content = "Spam already exists";
    $(button).disable();
    return failure;
}

$(box).content = "Added new spam";
$(button).enable();
return success;

// less confusing

if (spam.exists()) {
    $(box).content = "Spam already exists";
    $(button).disable();
    return failure;
} else {
    $(box).content = "Added new spam";
    $(button).enable();
    return success;
}

答案 3 :(得分:1)

如果条件命令是return或其他停止函数或脚本的方式,答案是

但如果只有一个conditionnal命令,则括号{}无用:

function a(b){
    if(b=="c") return true;
    return false;
}

function a(b){
    if(b=="c") return true
        else return false;
}

完成与原始帖子完全相同的工作。 else语句通常用于此类技巧:

if (b=="c") z="match"
   else z="wrong";

请注意,在第二个样本;之后和true之后,没有半长"match"

答案 4 :(得分:1)

你可以在你的情况下省略else语句。在else之后使用return时,JSLint甚至会出错。

JSLint上尝试以下代码:

function test() {

    "use strict";
    var b;
    if(b === "c") {
        return true;
    } else {
        return false;
    }
}