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
。然后由该环境向您报告该错误。
可能写作 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
。然后由该环境向您报告该错误。