在JavaScript中评估字符串时出现错误



我有一个字符串calc,它表示一个操作(例如"2/2"(

我希望我的代码对字符串求值并返回结果。

当字符串无效且无法评估时(例如,"2.2.2",我想返回null

这是我迄今为止的代码:

const result = eval(calc);


if (result === undefined){
return null;
} else {
return result;
}

我的错误是:当字符串作为操作无效并且无法计算时,我不会得到null。相反,程序抛出一个错误。

如何获得null而不是错误?

使用try/catch

try {
result = eval(calc);
return result;
} catch (e) {
return null;
}

通常不需要使用eval(),并且可能导致安全性和性能问题。可能有更好的解决方案。我建议您更详细地解释您的用例,这样我们可以帮助您找到更好的解决方案。

如果你真的想这样做,你可以使用try-catch语句,因为当代码无法计算时,会抛出异常。

console.log(myEval("2.2.2"));
console.log(myEval("2/2"));
function myEval(str) {
try {
return eval(str);
} catch {
return null
}
}

当无法正确解析命令时,

eval((将返回错误。当您使用try-and-catch时,您可以在发生错误时返回null。

try{  
const result = eval(calc);
return result;
}
catch (error){
return null;
}

相关内容

最新更新