開發工具 · FREE ONLINE TOOL

JavaScript 語法檢查器

免費線上 JavaScript 語法檢查器,支援 Script、ES Module、語法錯誤定位、行號與欄號顯示及繁體中文錯誤說明。程式碼只在瀏覽器解析,不執行、不上傳。

程式碼只解析、不執行、不上傳

0 bytes(UTF-8)/0 個 UTF-16 單位

最多 500 KiB UTF-8、200,000 個 UTF-16 單位。超過 100 KiB 請手動檢查;不截斷原文。

語法檢查結果

尚未檢查

語法有效只代表程式符合解析器支援的 JavaScript 語法,不代表一定能正常執行。本工具不做型別、Lint、安全性或未定義變數檢查,也不查驗 import 路徑與模組是否存在。

載入範例,看看語法與執行的差別

使用本機 Acorn 8.19.0(MIT),以 latest 檢查該版本支援的標準 ECMAScript 語法。Script 與 ES Module 明確區分,不會自動切換。支援範圍依內建解析器版本,不支援 TypeScript、TSX、JSX、Vue SFC、Astro 或非標準擴充。

每次檢查在獨立 Worker 進行,超過 3 秒(含載入)或按取消會直接終止;修改輸入或設定會使舊結果失效。只顯示解析結果,不執行程式碼、不載入 import、不建立執行沙盒。

程式碼、檔案與結果只留本頁記憶體,不上傳、不寫入 Storage、網址、Console、廣告或 Analytics。匯入檔案保留原始換行供解析;直接編輯後以輸入框正規化的 LF 內容檢查。只有主動複製錯誤資訊才輸出錯誤片段到剪貼簿。

Acorn 版本與完整授權 · JS/CSS 壓縮工具負責轉換與下載程式碼,本工具只檢查語法。也可使用JSON 格式化、Regex 測試與文字雜湊。

HOW TO USE

簡單幾步,就完成。

  1. 貼上標準 JavaScript,或從本機匯入 UTF-8 的 .js/.mjs 檔案,明確選擇 Script 或 ES Module。
  2. 使用預設即時檢查,或按開始語法檢查;大型輸入需手動開始。
  3. 查看第一個錯誤的原始訊息、繁中說明與附近片段,跳到原文位置修改後重新檢查。

生活裡的這些時刻,都用得到

適合學習 JavaScript、檢查小型腳本或確認模組語法;不需登入或上傳,不提供執行沙盒、自動修復或專案 Lint。

GOOD TO KNOW

你可能還想知道

這個 JavaScript 語法檢查器可以做什麼?

使用本機 Acorn 8.19.0 解析整份標準 JavaScript。成功時顯示語法有效;失敗時顯示第一個 SyntaxError、原始解析器訊息、繁中說明、行欄與附近片段,可跳轉原始碼或複製錯誤資訊。不改寫或壓縮原文。

語法有效代表一定能正常執行嗎?為什麼沒找到未定義變數?

不代表。console.log(notDefinedVariable) 可以符合語法,但實際執行可能出現 ReferenceError。本工具不執行程式,不做型別、Lint、未定義變數、安全性或執行環境檢查。

Script 和 ES Module 差在哪裡?支援 import/export 嗎?

Script 預設用於一般腳本,頂層靜態 import/export 與 import.meta 不能視為 Script。ES Module 支援符合內建解析器版本的 import、export、import.meta 與頂層 await,且採用模組嚴格語法。工具不自動切換模式,不載入模組,也不檢查路徑、檔案或匯入名稱是否存在。

支援 TypeScript、JSX、Vue 或 Astro 嗎?

第一版只使用標準 Acorn Parser,以 ecmaVersion latest 檢查該版本支援的標準 ECMAScript。沒有 TS、TSX、JSX、Vue SFC、Astro 或非標準語法外掛,不會剝除型別後假裝原文通過。這些原始碼請使用自己的編譯器與專案工具。

為什麼只顯示第一個錯誤?繁中說明是自動修正嗎?

嚴格解析器遇到第一個語法錯誤就停止,不會假裝已找到所有問題。繁中說明只根據可確認的訊息分類;未知情況保留原始訊息並給通用建議,不推測唯一修正方法,也沒有 AI 自動修復。

行欄和錯誤跳轉如何計算?

使用 Acorn 真正回報的 pos 和 loc。行號從 1 起算;解析器欄號從 0 起算,介面加 1 顯示。位移與欄號基於 UTF-16,不是 Unicode 字元數;Emoji 可能占兩個單位。片段以安全 DOM 標示位置,Tab 不用空格箭頭猜對齊。匯入的 CRLF 另行映射到 textarea 的 LF;EOF 會將游標移到結尾。

程式碼會執行、上傳或儲存嗎?

不會執行使用者 JavaScript、不使用 eval/new Function、不載入 import、不建立執行沙盒。程式碼、檔案和結果只在本頁記憶體,重新整理即清除;不寫入 Storage、網址、Console、廣告或 Analytics,也不傳到後端或外部 Compiler API。只有主動複製錯誤資訊才寫入剪貼簿。

即時檢查、容量與取消有什麼限制?

預設停止輸入 400 ms 後檢查;超過 100 KiB 暫停即時,需手動開始。最多 500 KiB UTF-8 且不超過 200,000 個 UTF-16 單位,每次 Worker 含載入最多 3 秒。取消、修改原文或設定、逾時都會真正終止 Worker,晚到回應不會覆蓋新結果;失敗保留原文,可重新檢查。

可以匯入哪些檔案?會改掉原文嗎?

接受本機 UTF-8 的 .js/.mjs,套用相同容量限制,不讀取遠端 GitHub 或上傳檔案。已有原文時先確認覆蓋;匯入檔案保留換行供解析。直接編輯後以 textarea 正規化的 LF 內容檢查,不自動排版。讀取期間若修改原文或設定,舊匯入不會覆蓋新輸入。

與 JavaScript/CSS 壓縮工具有什麼不同?

語法檢查器只解析並顯示檢查結果,不產生 .min.js。壓縮工具使用自己的轉換流程產生壓縮檔案。兩者共用本機 Acorn 套件與部分介面元件,檢查器不依賴 Terser 或壓縮步驟。