在js中捕获一个referenceError

Catch a referenceError in js

我有一个文本区域,用户可以在其中输入 javascript 代码,按下按钮后该代码将传递给 eval()。

当用户输入如下内容时,我无法捕捉到 referenceError:

var myName = Maria;

而不是

var myName = "Maria";

感谢您的宝贵时间!

尝试在 eval() 调用周围放置一个 try/catch block。像这样:

try {
    eval(userInput);
} catch (e) {
    // do something
}

(请注意,出于安全原因,将用户输入传递给 eval() 不是 您应该在真实站点上执行的操作。)

好的,你说的你明白eval()的坑了,这里我提出一个解决方案

try {
    var myName = Maria;
} catch (e) {
    if (e instanceof ReferenceError) {
        // Handle error as necessary
    }
}