javascript - JS中如何检查eval是否没有返回

标签 javascript null eval

如果我想检查 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(结果)

关于javascript - JS中如何检查eval是否没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42740107/

相关文章:

javascript - Ionic 应用程序中的分离服务不起作用

java - 如果一行中结果不为空,则附加到字符串? (干净/好看)

java - 在知道@NonNull 注释的Eclipse 中自动生成equals 和hashCode

ruby - 为什么我不能在初始化中使用 attr_accessor?

javascript - 用字符串 react native 创建元素

python - 从 python 运行 nohup 和 eval

javascript - AJAX 数据返回和动态更改元素

javascript - ionic http POST 不适用于服务器

javascript - 为什么 JS 中的背景图像并不总是返回属性 'naturalWidth'?

java - 方法调用中的 Null、原始数据值和包装类