// 第一种 if (test) { console.log('Yes~'); } else { console.log('No~'); } // 第二种 if (test) { console.log('Yes~'); return; } console.log('No~');
哪种会比较好呢?第二种看着会清晰一点 少了缩进 但是字符相对第一种来说增加了 1 个 以性能方面来看的话哪个会更高一点?~
第一种很丑很啰嗦有木有。。其次通常来说,在函数中判断要尽可能早,以便用 return 退出函数所以一般第二种更好些。你可以改成这几样:
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~'))
当然你要在可读性和简单优雅上衡量,这更多的是个人风格问题。
如果是在函数里面呢?
这不是性能的问题。当你的判断条件很多的时候,第二种的优势非常明显,除非你愿意写很多else判断语句应尽早结束,实际情况中,一般是多种不合格的条件+一种合格的条件。
判断语句应尽早结束
if(满足不合格条件1) { return; } if(满足不合格条件2) { return; } //... //满足合格条件
第二种,第二种,第二种,可读性好判断不符合要求立即返回
个人喜欢第二种,一旦逻辑结束,直接返回,条理清楚第一种那样的简单的还好,复杂的话需要看很多代码才能找到返回的结果
第二种,某种程度上来说流程更清楚(告诉你哪个能干,哪个不能干)。不过可以不用if...else的时候更好。比如说:
var ofn = { yes : function(){ console.log('yes'); }, no : function(){ console.log('no'); }, }; var key = test ? "yes" : "no"; ofn[key]();
第一种很丑很啰嗦有木有。。
其次通常来说,在函数中判断要尽可能早,以便用
return
退出函数所以一般第二种更好些。
你可以改成这几样:
当然你要在可读性和简单优雅上衡量,这更多的是个人风格问题。
如果是在函数里面呢?
这不是性能的问题。当你的判断条件很多的时候,第二种的优势非常明显,除非你愿意写很多else
判断语句应尽早结束
,实际情况中,一般是多种不合格的条件+一种合格的条件。第二种,第二种,第二种,可读性好
判断不符合要求立即返回
个人喜欢第二种,一旦逻辑结束,直接返回,条理清楚
第一种那样的简单的还好,复杂的话需要看很多代码才能找到返回的结果
第二种,某种程度上来说流程更清楚(告诉你哪个能干,哪个不能干)。
不过可以不用if...else的时候更好。比如说: