JavaScript 格式化 / 壓縮

把壓縮或混淆過的 JavaScript 重新縮排以便閱讀,或把自己的程式碼壓縮後上線。

JavaScript 輸入

縮排
變數名稱
script.js
貼上或輸入 JavaScript,即可格式化或壓縮。

你的 JavaScript 會在瀏覽器本機格式化和壓縮,不會上傳到 BroBroGo。

常見問題

格式化和壓縮有什麼區別?

格式化會重新縮排、加上空白,讓程式碼易讀、方便逐行追蹤——這是看懂壓縮或混淆程式碼最快的辦法。壓縮正好相反,去掉空白、註解和無用程式碼,讓檔案更小、載入更快。讀程式碼時用格式化,上線前用壓縮。

能把壓縮後的程式碼還原成原始程式碼嗎?

它能還原縮排和換行,讓邏輯重新變得可讀,但無法找回原本的變數名稱和註解——壓縮時這些已被永久丟棄,任何工具都無法還原。你得到的是同樣的程式碼,只是排版清楚了。

「縮短」和「保留」變數名稱有什麼不同?

兩者都會去掉空白、註解和無用程式碼,也都不改變腳本的行為。「縮短」還會把區域變數名稱改成單個字母,得到體積最小的檔案——用於上線。「保留」則不動你的變數名稱,檔案略大,但依然可讀、方便除錯。

JavaScript 格式化與壓縮的運作機制

在 JavaScript 開發流程中,程式碼的排版與體積對閱讀效率及網頁載入速度有著直接的影響。本工具提供兩種核心處理模式:格式化與壓縮。使用者可將 JavaScript 程式碼貼入或輸入至輸入區域,最高支援 3,000,000 個字元。

進行格式化時,工具會重建程式碼的縮排與間距,使其結構清晰易讀。進行壓縮時,工具則會移除程式碼中不必要的字元,以縮減檔案體積,加快瀏覽器的載入速度。處理完成的程式碼會顯示於唯讀編輯器中,並提供下載與複製功能。

格式化與壓縮的參數設定

本工具針對不同的處理需求,提供細緻的規則設定:

  • 格式化縮排樣式:進行格式化時,可自由選擇 2 個空格、4 個空格或 Tab 作為縮排單位。
  • 壓縮變數處理:進行壓縮時,針對區域變數名稱提供兩種處理機制:
    • 縮短:將區域變數名稱重新命名為單個英文字母,以產生體積最小的檔案。
    • 保留:維持原始的區域變數名稱不變,雖然檔案體積會略大,但能保留程式碼的可讀性,便於後續除錯。

程式碼壓縮的優化規則與限制

壓縮程序透過特定規則來極大化壓縮率,同時確保程式碼的執行正確性:

  • 移除無用元素:壓縮時會自動刪除所有空白字元、程式碼註解以及無用程式碼(Dead code)。
  • 保留授權宣告:為了遵守開源授權規範,壓縮程序會完整保留 /*! … */ 格式的授權橫幅註解。
  • 不可逆性:壓縮是一項不可逆的程序。壓縮過程中被移除的原始變數名稱與註解無法被還原。
  • 狀態與錯誤處理
    • 若輸入區域為空,工具會維持在「貼上或輸入 JavaScript,即可格式化或壓縮。」狀態。
    • 若輸入的 JavaScript 超過 3,000,000 個字元,將顯示錯誤訊息:「檔案太大,無法處理。請換小一點的。」。
    • 若處理時間超過 20 秒,系統會中斷程序並顯示:「處理時間過長,已停止——請換小一點的檔案。」。
    • 若輸入的程式碼含有語法錯誤而無法解析,將顯示:「無法處理這段 JavaScript。」。
    • 若壓縮後未留下任何可執行程式碼,則會顯示:「壓縮後沒有剩下任何內容——輸入裡沒有可執行的程式碼。」。
    • 點擊「清空」會清除輸入與輸出內容,並刪除已儲存的草稿。
    • 壓縮完成後,系統會顯示「已壓縮——體積減少 {pct}%。」,呈現具體的體積縮減比例。

瀏覽器本機端處理與隱私保護

本工具的運作完全在您的瀏覽器本機端完成。所有的格式化與壓縮運算皆透過瀏覽器執行,您的 JavaScript 程式碼不會上傳到 BroBroGo 伺服器。

常見問題

格式化和壓縮有什麼區別?

格式化會重新縮排、加上空白,讓程式碼易讀、方便逐行追蹤——這是看懂壓縮或混淆程式碼最快的辦法。壓縮相反,去掉空白、註解和無用程式碼,讓檔案更小、載入更快。讀程式碼時用格式化,上線前用壓縮。

能把壓縮後的程式碼還原成原始程式碼嗎?

它能還原縮排和換行,讓邏輯重新變得可讀,但無法找回原本的變數名稱和註解——壓縮時這些已被永久丟棄,任何工具都無法還原。你得到的是同樣的程式碼,只是排版清楚了。

「縮短」和「保留」變數名稱有什麼不同?

兩者都會去掉空白、註解和無用程式碼,也都不改變腳本的行為。「縮短」還會把區域變數名稱改成單個字母,得到體積最小的檔案——用於上線。「保留」則不動你的變數名稱,檔案略大,但依然可讀、方便除錯。