微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未捕获到的SyntaxError:意外令牌'' -我怎么抓?

如何解决未捕获到的SyntaxError:意外令牌'' -我怎么抓?

我从以下代码中获得标题错误

    try {
        let n = undefined;
        let nx = n?.x;
    } catch (err) {
        missingFeatures.push("Syntax n?.x not recognized");
    }

如您所见,该代码的设计旨在获得对这种语法的支持。 但这是行不通的。有什么办法可以捕获此语法错误

有趣的是,这发生在Android 10上基于铬的新Edge中。

解决方法

您可以改为构造一个new Function,并查看该函数的构造是否抛出。不需要先定义其他变量,因为您只关心语法是否正确,而语法检查则不在乎变量是否已定义,因为该函数永远不会运行:

try {
  const fn = new Function('n?.x');
} catch (err) {
  missingFeatures.push("Syntax n?.x not recognized");
}

也就是说,测试是否支持特定语法是很奇怪的。除非您为用户编写面向开发的内容(例如实时JavaScript编辑器),否则将代码简单地转换为ES5或ES6进行生产并将其提供给每个人几乎总是更有意义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。