【发布时间】:2015-03-25 11:40:48
【问题描述】:
我正在审查一些逻辑看起来有缺陷的代码。由于 if else 返回流程,我不确定以下代码是否会返回 false。我的问题是,下面的代码是否会返回 false,甚至会抛出错误?
function performSearch(e) {
if(e.keyCode === RETURN_KEY_KEYCODE) {
var select = document.getElementById("selectmenusearch");
var selected = select.options[select.selectedIndex].value;
if(selected === 'organisation') {
submitSearchForm('<%= doOrganisationSearchURL %>');
} else {
submitSearchForm('<%= doIndividualSearchURL %>');
}
} else {
return false;
}
return true;
}
所以我的流程看起来像
if (this condition is true) {
//execute some code
} else {
return false
}
else return true
注意:我知道重构只有一个 return 语句会更好,但在我看来有两个 else 语句。
【问题讨论】:
-
当
e.keyCode !== RETURN_KEY_KEYCODE? -
不清楚你在问什么,看起来像一个非常常规的 if/else 块
-
它应该等于 RETURN_KEY_CODE 因为它正在检查按键,如果已按下则可以提交表单
-
我们是否同意如果 e.keyCode !== RETURN_KEY_CODE 代码流向带有“return false”的 else 块?
-
啊,是的,所以如果不是真的,它会返回假,否则它仍然会执行代码但也会返回真......但我认为最终的返回语句与 else 语句相同,但是没有别的词?
标签: javascript if-statement logic