如何在JavaScript中应用条件返回语句

How to apply conditional return statement in JavaScript

本文关键字:条件 返回 语句 应用 JavaScript      更新时间:2023-09-26

我有这个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是一个语句而不是表达式,因此不能用作逻辑运算符的参数。

然而,在您的情况下,通过将条件反转为if子句,可以将最后两行重写为单个return语句:

return !(charCode > 31 && (charCode < 48 || charCode > 57));

或者,正如zerkms所指出的,您可以通过翻转运算符(&&<=>||<<=>>=)来丢失!,在我看来,这会增加可读性:

return charCode <= 31 || (charCode >= 48 && charCode <= 57);

根据您的描述,看起来您正在寻找条件检查和返回:

function isNumber(evt){
  evt = evt || window.event;
  var charCode = evt.which || evt.keyCode; 
  return !(charCode > 31 && (charCode < 48 || charCode > 57));
}