按 ⌘K 切换工具
VALIDATE & INSPECT
JavaScript语法验证器
验证JavaScript语法错误。
js-validator
Syntax is checked by compiling in your browser. The code is never executed and never sent anywhere.
§01 关于此工具
概述
这个工具快速回答一个问题:这段 JavaScript 能不能通过解析?你的代码会经由 Function 构造函数交给浏览器自己的引擎,它只编译而绝不运行。这意味着结论来自一个真正的生产级解析器——就是接下来会执行你脚本的那一个——而不是某个重新实现的版本;而且因为编译出来的函数从不被调用,副作用根本无从发生。
使用方法
- 把代码粘贴到 JavaScript 输入框——每敲一个键都会重新检查。
- 读状态行:通过时显示 No syntax errors,失败时显示引擎给出的错误,比如
SyntaxError: Unexpected token '}'。
示例
const x = () => { return 1 }→No syntax errorsif (a { console.log(a) }→SyntaxError: Unexpected token '{'function f( {→SyntaxError: Unexpected end of input
说明
代码在你的浏览器里编译,从不被执行,也不发往任何地方。由于它是作为函数体而非模块来解析的,import/export 语句和顶层 await 即使在一个合法的 ES 模块里也会被报成错误。这里只做语法检查——它抓不到运行时错误、未定义的变量或逻辑缺陷;更深入的分析请用 ESLint 之类的 linter。换句话说,这里给出的判断,就是那个浏览器自己会给出的判断。
FAQ
我的代码会被执行,或者被发到服务器吗?
都不会。代码是用 Function 构造函数编译的——只解析,从不调用——而且一切都发生在你的浏览器里。不执行、不上传、不保存。
它支持哪个版本的 JavaScript?
取决于你浏览器引擎支持到哪。较新的 Chrome、Firefox 或 Safari 能解析当前的 ECMAScript,包括箭头函数、可选链和 class——结果与那个浏览器实际接受的完全一致。
我的文件明明是合法的,为什么 import 或 export 会报错?
代码是作为函数体编译的,而不是作为 ES 模块。在那个上下文里,import/export 声明以及其他仅限模块的语法都会被拒绝,所以请先去掉它们,或者在不带这些语句的前提下测试文件里的逻辑。