如何在 JavaScript 中应用条件 return 语句
How to apply conditional return statement in JavaScript
我有这个 html 输入:
Rows: <input type="text" class="rows" onkeypress="return isNumber(event)"><br>
和这个 javascript 函数只验证数字
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
但我想使用微分支来做这样的事情:
function isNumber(evt){
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
(charCode > 31 && (charCode < 48 || charCode > 57)) && return false;
return true;
}
问题是最后两行不起作用。
return
是语句而不是表达式,因此不能用作逻辑运算符的参数。
然而,在您的情况下,最后两行可以重写为单个 return
语句,只需将条件反转为 if
子句:
return !(charCode > 31 && (charCode < 48 || charCode > 57));
或者,如 ,您可以通过翻转运算符(&&
<=> ||
和 <
<=> >=
),在我看来,这增加了可读性:
return charCode <= 31 || (charCode >= 48 && charCode <= 57);
根据您的描述,您似乎在寻找条件检查 return :
function isNumber(evt){
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
return !(charCode > 31 && (charCode < 48 || charCode > 57));
}
我有这个 html 输入:
Rows: <input type="text" class="rows" onkeypress="return isNumber(event)"><br>
和这个 javascript 函数只验证数字
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
但我想使用微分支来做这样的事情:
function isNumber(evt){
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
(charCode > 31 && (charCode < 48 || charCode > 57)) && return false;
return true;
}
问题是最后两行不起作用。
return
是语句而不是表达式,因此不能用作逻辑运算符的参数。
然而,在您的情况下,最后两行可以重写为单个 return
语句,只需将条件反转为 if
子句:
return !(charCode > 31 && (charCode < 48 || charCode > 57));
或者,如 &&
<=> ||
和 <
<=> >=
),在我看来,这增加了可读性:
return charCode <= 31 || (charCode >= 48 && charCode <= 57);
根据您的描述,您似乎在寻找条件检查 return :
function isNumber(evt){
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
return !(charCode > 31 && (charCode < 48 || charCode > 57));
}