如何检查评估是否在JS中返回



如果我想检查eval函数是否返回什么都没有返回,我该怎么做?我试图做类似:

的事情
    if (eval("iwuoinuvwoienvuwope") == "") {
     // Do something
     alert("Oh NO!");
    }

但是,当我喜欢那时什么都没有发生。

这是我的完整代码:

function calc() {
  var cal = prompt("Your math....", "1 + 1");
  if (cal == null) {
    alert("If you don't have a math problem you can gtfo!");
  } else if (cal == false) {
    alert("If you don't have a math problem you can gtfo!");
  }
  
  /*  Here I Check if eval is empty  */
  /*  Here it doesn't work  */
  else if (eval(cal) == "") {
           alert("Could you be more specific");
           }
           
           /*       */
           
           
  else {
    alert("The answer is " + eval(cal));
  }
}
<button onclick="calc();">Calculator</button>

eval(code)返回"评估给定代码的完成值。如果完成值为空,则返回undefined。"mdn

在您的情况下,有效的数学表达式返回Number。因此,您必须检查typeof result == "Number"。如果要排除NaNInfinity等,请执行其他检查,例如由isFinite(result)

如果要构建计算器,则应期望响应,异常或null。

try {
  if (r === undefined) {
  } else {
   // handle response
  }
} catch (error) {
  // invalid
}

验证它是否是一个数字,并且数学公式是否有效将帮助您身份可能的错误输出。

相关内容

  • 没有找到相关文章

最新更新