如果我想检查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"
。如果要排除NaN
,Infinity
等,请执行其他检查,例如由isFinite(result)
。
如果要构建计算器,则应期望响应,异常或null。
try {
if (r === undefined) {
} else {
// handle response
}
} catch (error) {
// invalid
}
验证它是否是一个数字,并且数学公式是否有效将帮助您身份可能的错误输出。