javascript - Uncaught SyntaxError : Unexpected token '.' - how do I catch it?

标签 javascript android google-chrome error-handling microsoft-edge

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

    try {
        let n = undefined;
        let nx = n?.x;
    } catch (err) {
        missingFeatures.push("Syntax n?.x not recognized");
    }
如您所见,该代码的设计旨在获得对这种语法的支持。
但这是行不通的。有什么办法可以捕获此语法错误?
有趣的是,这种情况发生在Android 10上基于 Chrome 的新Edge中。

最佳答案

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

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

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

关于javascript - Uncaught SyntaxError : Unexpected token '.' - how do I catch it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63733354/

相关文章:

javascript - 在 Chrome 中的用户脚本之间传输信息

javascript - 在 Chrome/Chromium 插件中检查互联网连接;加载的图像已缓存

javascript - 单击按钮时拼接不移除

javascript - 使用 javascript sdk 的亚马逊 s3 上传无法正常工作

android - 使用 OpenGL 着色器模拟调色板交换(在 LibGDX 中)

c# - 如何使用 MVC 5 和 Web API 构建 Android 应用程序?

android - 拉取与新闻文章相关的缩略图

javascript - 如何在 Chrome 中启用多于 2 个手指的支持?

javascript - 使用 jQuery 更改 twig foreach 循环中的类

javascript - 使用jquery获取图像链接的 'src'?