这两个函数之间是否有任何性能差异,是否认为更多正确?我缺少最佳做法或经验法则吗? ExampleB对我来说似乎更简洁,因此更具可读性,但逻辑似乎没有紧密联系在一起,因此不那么明确。
function exampleA() {
if( true ) {
return //do this;
} else {
return //do that;
}
};
对战
function exampleB(){
if( true ) {
return //do this;
}
return //do that;
};
提前致谢!
答案 0 :(得分:2)
被认为更正确吗?是否有最佳实践或规则 拇指我不见了
不需要else
。程序员我们很懒,所以第二版更好,更简洁。但是,如果某些内容返回true
或false
或者真值或假值,那么您可以返回表达式:
if (something) { // Meh
return true;
} else {
return false;
}
if (something) return true; // OK
return false;
return something; // Nice
两个功能之间是否存在任何性能差异
我认为性能是无关紧要的,它更多地是关于最佳实践,并尽可能使用早期返回使您的代码更简洁。
答案 1 :(得分:1)
我总是第二次去。我不认为第二个例子中确实存在任何语义上的困难,而且它的字符数少了一些。遵循“Less Ink”方法,我会选择例B.
那就是说,如果这个例子是针对绝对的初学者程序员,他们可能需要else
子句来做它的正面或反面。我想这归结为背景。
性能明智,正如您从上面可以看到的那样。第二个是0.08%
最快的,所以不是巨大的性能差异。实际上,这种差异可能基于此代码以外的变量,因此性能差异实际上是0
。
答案 2 :(得分:0)
两个功能之间是否存在任何性能差异
不,不是以任何重要或一致的方式 - 检查jsPerf:When test is true | When test is false:
真:
题:
...被认为更正确吗?
这是一个风格问题。风格问题不适合SO的格式。
答案 3 :(得分:0)
您可以使用第二个(如果没有返回任何内容,则删除最后一个没有用处的return语句。)
原因是:
你不必在那里缩进代码,所以它更可能是可读的(总的来说,如果你有一些长行代码)。