suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – if bestimmt, ob die else-Anweisung verwendet oder zurückgegeben werden soll, um eine andere Bedingung auszuführen

// 第一种
if (test) {
    console.log('Yes~');
} else {
    console.log('No~');
}

// 第二种
if (test) {
    console.log('Yes~');
    
    return;
}

console.log('No~');

Welches ist besser? Der zweite sieht klarer aus, mit weniger Einrückung, aber einem Zeichen mehr als der erste. Was ist hinsichtlich der Leistung besser? ~

学习ing学习ing2727 Tage vor1047

Antworte allen(6)Ich werde antworten

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:33:02

    第一种很丑很啰嗦有木有。。
    其次通常来说,在函数中判断要尽可能早,以便用 return 退出函数
    所以一般第二种更好些。
    你可以改成这几样:

    if (test) return console.log('Yes~')
    console.log('No~')
    
    if (test) console.log('Yes~')
    else console.log('No~')
    
    test?(console.log('Yes~')):(console.log('No~'))
    

    当然你要在可读性和简单优雅上衡量,这更多的是个人风格问题。

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-12 09:33:02

    如果是在函数里面呢?

    Antwort
    0
  • 学习ing

    学习ing2017-06-12 09:33:02

    这不是性能的问题。当你的判断条件很多的时候,第二种的优势非常明显,除非你愿意写很多else
    判断语句应尽早结束,实际情况中,一般是多种不合格的条件+一种合格的条件。

    if(满足不合格条件1) {
        return;
    }
    if(满足不合格条件2) {
        return;
    }
    //...
    //满足合格条件

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:33:02

    第二种,第二种,第二种,可读性好
    判断不符合要求立即返回

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-06-12 09:33:02

    个人喜欢第二种,一旦逻辑结束,直接返回,条理清楚
    第一种那样的简单的还好,复杂的话需要看很多代码才能找到返回的结果

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:33:02

    第二种,某种程度上来说流程更清楚(告诉你哪个能干,哪个不能干)。
    不过可以不用if...else的时候更好。比如说:

    var ofn = {
        yes : function(){ console.log('yes'); },
        no : function(){ console.log('no'); },
    };
    
    var key = test ? "yes" : "no";
    
    ofn[key]();
    

    Antwort
    0
  • StornierenAntwort