Javascript – if bestimmt, ob die else-Anweisung verwendet oder zurückgegeben werden soll, um eine andere Bedingung auszuführen
学习ing
学习ing 2017-06-12 09:31:02
0
6
1068
// 第一种
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
学习ing

Antworte allen(6)
女神的闺蜜爱上我

第一种很丑很啰嗦有木有。。
其次通常来说,在函数中判断要尽可能早,以便用 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~'))

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

学霸

如果是在函数里面呢?

学习ing

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

if(满足不合格条件1) {
    return;
}
if(满足不合格条件2) {
    return;
}
//...
//满足合格条件
我想大声告诉你

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

Peter_Zhu

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

伊谢尔伦

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

var ofn = {
    yes : function(){ console.log('yes'); },
    no : function(){ console.log('no'); },
};

var key = test ? "yes" : "no";

ofn[key]();
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage