JavaScript:语法检查

JavaScript: Syntax Checking

可能写作 JavaScript 最令人愤怒的部分是它如何在出现语法错误时悄无声息地崩溃。特别是缺少引号或大括号可能会破坏整个脚本。

通过 'use strict'window.onerror 的组合,不难发现许多运行时错误。

许多编码 IDE 提供某种语法检查,通常是通过 jshint.

等插件进行的

有什么方法可以让 JavaScript 报告自己的语法错误吗?

或者,我很乐意推荐 IDE,它真正调试基于浏览器的 JavaScript。

编辑:

JavaScript 显然经历了一个解析阶段,语法错误显然会导致它悲痛。解析器本身是否以任何可捕获的方式报告错误?

我知道 3rd 方 linters 在这里很有用,但我想知道 JavaScript 本身是否提供了线索。

JavaScript 不会 "silently collapse" 现代浏览器中的语法错误(就此而言,它甚至不会在旧浏览器中出现)。打开开发工具(Ctrl+Shift+I and/or F12,或 Mac 上的 Cmd+Shift+I)并查看控制台。它会向您显示语法错误,通常带有 link 直接指向相关代码行。这些相同的开发工具还提供了一个功能齐全的调试器。

JavaScript obviously goes through a parsing stage and syntax errors obviously cause it grief. Does the parser itself report errors in any catchable way?

是 — 对它的调用者,它将在解析器所在的环境中 运行,而不是您的代码。根据规范,解析无效代码会导致 SyntaxError。然后由该环境向您报告该错误。