Vibe Coder
前端除錯與 DevTools 進階:看懂 Console 紅字
前端錯誤來自三個來源:JavaScript 錯誤看 Console 面板,網路請求問題看 Network 面板,樣式問題看 Elements 面板。分清楚錯誤的分類,再搭配把完整錯誤訊息貼給 AI,大部分前端問題能在五分鐘內定位到原因。
前端除錯與 DevTools 進階:看懂 Console 紅字
Console 紅字不是翻牌猜謎,TypeError、ReferenceError、CORS、404,每一種錯誤都有不同的排查方向,知道分類才能快速定位問題。
這篇整理前端錯誤的三個來源、常見錯誤訊息怎麼解讀,以及進階的 Breakpoint 除錯法,最後帶你複習整個 Stage 2 學到的技能樹。
你將學到什麼
錯誤的三個來源
JavaScript、網路請求、樣式,各自去哪個面板看。
Console 錯誤解讀
TypeError、ReferenceError、CORS,看到就知道方向。
Network 面板排查
API 沒資料,狀態碼和回應內容第一個看。
Breakpoint 除錯
程式在特定行暫停,逐步檢查變數狀態。
前端錯誤的三個來源
| 來源 | 去哪裡看 | 常見症狀 |
|---|---|---|
| JavaScript 錯誤 | Console 面板的紅色訊息 | TypeError、ReferenceError、畫面空白或部分不顯示 |
| 網路請求問題 | Network 面板的紅色請求 | API 沒資料、404、CORS 錯誤、401 |
| 樣式問題 | Elements 面板的 Styles | 元素不在對的位置、顏色錯、間距不對 |
Console 錯誤訊息解讀
| 錯誤訊息 | 意思 | 排查方向 |
|---|---|---|
| TypeError:對 null 取屬性 | 某個變數是 null | 找哪個變數可能是 null,加可選鏈或判斷式 |
| ReferenceError:xxx is not defined | 使用了未宣告的變數 | 確認變數名稱拼寫、是否在正確的作用域 |
| CORS policy 錯誤 | 跨域請求被擋住 | 後端要加 CORS 設定,不是前端的問題 |
| 清單元素缺少 key 的警告 | React 清單元素缺少 key prop | 在 map 迴圈裡的元素加上 key |
| Module not found:路徑找不到 | import 的路徑找不到 | 確認檔案路徑和名稱是否正確 |
Network 面板:API 不通就來這裡
- 打開 Network 面板,重新整理或觸發 API 呼叫,所有網路請求都會出現在這裡。
- 點選你的 API 請求,看狀態碼:兩百是成功,四百是你的請求有問題,四百零一是認證失敗,四百零四是路徑錯,五百是後端出錯。
- 看 Response 分頁,確認後端回傳的資料格式和你預期的是否一致。
- 看 Headers 分頁,確認請求的網址、方法(GET 或 POST)、Authorization 標頭是否正確。
進階:Breakpoint 除錯
當 console.log 還不夠時,可以用 Breakpoint 讓程式在特定行暫停,逐步檢查變數狀態。
- 開發者工具的 Sources 面板,找到你要除錯的 JS 檔案。
- 點擊行號左側加 Breakpoint,或在程式碼裡加
debugger;語句。 - 觸發執行到這行,程式自動暫停,右側 Scope 面板顯示所有目前的變數值。
- 用控制按鈕(Step Over、Step Into)逐行執行,觀察變數值的變化。
快速除錯 SOP一、Console 有紅字先讀完整的錯誤訊息,找檔案名和行號。二、API 資料不對去 Network 面板看請求和回應。三、畫面不對但沒錯誤去 Elements 面板看 DOM 和 Styles。四、以上都看了還不知道,把錯誤訊息和相關程式碼貼給 AI。
練習:解讀一段真實的 Console 錯誤
TypeError: Cannot read properties of undefined (reading 'temperature')
at WeatherCard (App.jsx:15:28)
at renderWithHooks (react-dom.development.js)
試著自己說一次App.jsx 第十五行,WeatherCard 元件試圖讀取某個物件的 temperature 屬性,但那個物件是 undefined,可能是 API 還沒回來,State 還是初始值 null 或 undefined。解法:加條件渲染,或用可選鏈
weather?.temperature。Stage 2 總複習:看懂畫面的完整技能樹
| 模組 | 核心能力 | 代表工具 |
|---|---|---|
| HTML | 讀懂網頁骨架、用開發者工具找元素 | Elements 面板 |
| CSS | 讀懂樣式、盒模型、Flexbox、Tailwind | Styles 面板 |
| JavaScript | DOM 操作、事件、fetch、async / await | Console 面板 |
| React | 元件、Props、State、useEffect | React DevTools |
| 元件庫 | shadcn/ui 安裝使用、讀文件、客製化主題 | shadcn/ui 文件 |
| 除錯 | Console 錯誤解讀、Network 排查、Breakpoint | DevTools 全部面板 |
走完這六個模組,你能做到的是:看到任何網頁能用開發者工具拆解結構;看到 AI 生的 React 加 Tailwind 加 shadcn 程式碼能讀懂;前端出問題知道從 Console 和 Network 開始排查;能用精確的術語告訴 AI 要改什麼,得到準確的前端修改建議。
延伸學習
常見問答
看到 Cannot read properties of null 是什麼意思?
這是對 null 或 undefined 取屬性造成的 TypeError,通常代表某個變數還沒準備好,例如 API 資料還沒回來、State 還是初始值。解法是加條件渲染或用可選鏈 obj?.prop。
CORS 錯誤要怎麼處理?
CORS 是瀏覽器的安全機制,阻止網頁向不同網域發送請求。看到這個錯誤要去後端加上允許的來源設定,不是前端能單方面解決的問題。
Console 沒有錯誤,但畫面就是不對,該怎麼查?
先去 Network 面板確認 API 有沒有打出去、狀態碼是什麼、回傳內容對不對;如果 API 沒問題,再去 Elements 面板看 DOM 結構和 Styles 有沒有跑掉。
為什麼要把完整錯誤訊息貼給 AI,而不是自己描述?
完整的錯誤訊息包含檔案名稱、行號、錯誤類型,AI 能直接定位問題;只用「畫面壞掉了」這種自己的話描述,AI 缺乏足夠線索,排查效率差很多。
