本章為 JavaScript 核心重構的第一天,我們將從最基礎卻最關鍵的「控制台 (Console)」開始。許多人在撰寫程式時,就像在黑暗中盲目揮劍,無法觀察資料在幕後的流動細節。本篇將帶領冒險者熟悉 DevTools 開發者工具,探討 console.log()、console.table() 與 console.dir() 等觀測語法的底層運作與適用情境,並解析為何在高階開發中應避免阻斷性的 alert(),建立正確的除錯思維與理性視角。
Day 01: 看見世界的儀式:控制台與冒險者的第一眼
本文同步分享於2026鐵人賽:JS 核心重構:勇者轉職傳說
孩子,在踏上今日的領地前,先坐下來喝杯酒吧。 修煉的路很長,別急著奔跑,先聽聽這份卷軸裡的古老叮嚀。
我在每一站的盡頭都為你鋪設了 「
實戰演武場 CodePen」。那不只是程式碼的拼湊,而是你在這場暴風雨中,試圖用邏輯點燃的一顆星火。 成功突圍後,別忘了帶著你的戰利品回到 「QuestBoard 佈告欄」。在那裡,你會發現自己從不孤單,公會的夥伴們都正舉杯等待你的歸來。記住...
「 導師看重的從來不是你的劍法有多華麗,而是當你被邏輯擊潰、滿身泥濘後,依然選擇握緊理性的劍柄,再次向真相發起衝鋒的勇氣。 」
🛡️ 【公會大廳:導師的修煉導讀】
既然來了公會,我們先來做個測試。
我手邊這有一份古老的咒語(程式碼),但我唸完了,現場卻什麼也沒發生。你有看見空中出現火球嗎?有看見地板裂開嗎?都沒有。
孩子們,這就是最開始的困境:「你對著空氣揮舞魔杖,卻不知道法力到底有沒有在流動。」
在學會殺敵的劍術之前,你得先學會如何擁有 「看見真相的眼睛」。在我們的領域中,這雙眼就叫做 「控制台 (Console)」。今天,我們要在這裡完成報到,並學會如何透過這個視窗,讓潛藏在暗處的邏輯開口說話。
💡 【導師講義:底層真相探究】
我們之所以需要 console,是因為代碼在執行時,我們的大腦無法百分之百追蹤所有數據。我們需要一個「顯示鏡」來告訴我們現在發生了什麼。
1. 魔法顯示鏡:console.log()
這是你與 JavaScript 溝通的最高頻率。你可以把任何你想看見的訊息丟進去觀察。
// 💡 觀察純文字:這在魔法界稱為「字串 (String)」
console.log("你好,新手勇者!");
// 💡 觀察數值計算:看見數字的魔力
console.log(100 + 200);
// 💡 觀察多樣內容:用逗號把它們連在一起。此招常用於區分「這是誰的數據」
console.log("當前勇者的戰鬥力:", 100);
2. 進階觀測咒語示範
如果你想看見不同形式的戰報,導師還有這幾張珍藏的卷軸招式:
// 💡 展示表格:優先選用「辛梅爾 (Himmel)」及其勇者夥伴作為名單練習
console.table(["辛梅爾", "芙莉蓮", "海塔", "艾冉"]);
// 💡 展示細節:觀察魔法物件的完整結構
// (未來當我們操縱 DOM 魔力 (Day 15) 時,它是你最重要的測速器)
console.dir(document.body);
| 特性 | console.log() | console.table() | console.dir() |
|---|---|---|---|
| 核心目標 | 日常觀察 | 觀察大批物資 (Array) | 觀察物件細節 (Object) |
| 視覺呈現 | 純文字 / 列表 | 漂亮的表格排列 | 可展開的詳細清單 |
| 核心辨析 | 物件在 log 中會被縮略 | 最適合快速閱覽清單 | 最適合看 HTML 節點 |
3. 邏輯流向圖解
導師的圖解心法: 想像這是一個 「內部洞察之眼 (Console)」。當代碼正在幕後像龐雜的齒輪組劇烈運作時,我們透過這面魔鏡,就能穿透屏障,讓真相數據直接映照在我們眼前。

⚔️ 【戰術對抗:學長與學弟的代碼對決】
招式示範:看見真相的工具選擇
[展示「冒險學弟 (新手)」與「勇者學長 (高級職人)」的視角落差。]
❌ 冒險學弟:遠古警報器 alert()
- 負能量評級:🔴 阻斷施法流程 / 🔴 無法顯示複雜數據
// 學弟心聲:我... 我打算先用這個看看數據有沒有變。
alert("偵測到法力流動..."); // 啪!整個頁面強制卡死,直到你手動按確定。
✅ 勇者學長:專業感測器 console.log()
- 利潤評級:🟢 施法流暢不中斷 / 🟢 詳盡記錄戰地細節
// 學長叮嚀:孩子,高手從不隨便遮住自已的視線。
console.log("偵測點 A:一切正常"); // 數據靜靜待在控制台,不干擾你繼續揮劍。
導師講評: 你看,學長跟學弟的差距,往往就在於這 0.1 秒的「視線阻斷」。學會使用
DevTools(開發者工具),是你從魯莽的新手成長為冷靜職業勇者的第一步。
🏰 【勇者精英課:邁向職人的進階架構】
在未來的大型戰場中,我們不會只用 log。我們會學習 「日誌級別 (Log Levels)」。例如:console.warn() 用來警告潛在的危機,console.error() 則用來發布毀滅性的災難。掌握這些等級的辨析,是你處理大規模戰役 (Production) 資料流時,能迅速從萬千訊息中定位裂痕的關鍵。
「孩子,導師回憶當年剛學會 JavaScript 時,連 F12(開發者工具)在哪裡都不知道。那時候我自以為很聰明,滿腦子只想寫出最帥的特效,卻從來不願意停下來 log 一下底層數據。
結果呢?我寫了一萬行的代碼,跑出來全是 undefined,我卻不知道是哪一段出了錯。那種在黑暗中盲目揮劍、拼命重整頁面卻找不到 BUG 的無力感,是我這輩子都不想再經歷第二次的挫敗。
從那天起我發誓:『看不見真相,我絕不動手寫下任何一行邏輯。』」
天色微亮,營火雖已燃盡,但你眼中卻閃爍著領悟的光芒。在前往演武場挑戰關卡前,我已經幫你把靈魂碎片精煉成了這份「戰術錦囊」。拿好它,今日的任務不再是負擔,而是你證明自我的舞台。去吧,公會的英雄榜在等著你的戰報。
這份筆記是你的隨身護身符,卡關時看一眼,真相就在裡面。
- 洞察之眼 (DevTools):這是你的眼睛,戰鬥前請務必按下
F12(或Mac: Cmd+Opt+I) 開啟它。 - console.log():最萬用的觀測咒語。記住,你可以用逗號分隔印出多個數據。
- 顏色辨識:在控制台中,藍色通常代表數字,黑色/灰色通常代表純文字。學會看顏色,能幫你快速分辨型別。
🎯 【實戰演武場】
📜 本日實戰任務:控制台覺醒實驗室 (CodePen)
🛡️ 任務達成證明:QuestBoard 公會報到處
⚔️ 任務鑑定條件:
- 📜 本日實戰任務:控制台覺醒實驗室 (CodePen)
- 將 CodePen 網址貼至 QuestBoard,並回填鑑定報告:
- 初心者:公會入隊鑑定 (成就感發掘):
- 1.今天第一次成功在「控制台」看到你輸入的名字時,有沒有一種「代碼終於開口說話」的感覺?
- 冒險者:洞察顏色辨析 (理性挑戰):[⚡ 觀念辨析]
- 當我執行
console.log(100+200)與console.log("100+200")時,呈現出來的顏色有什麼不同?
- 當我執行
- 初心者:公會入隊鑑定 (成就感發掘):
- 任務完成後,你的名字將永遠標記在公會的英雄榜上!
📚 【圖書館卷軸:延伸學習】
- MDN 官方文獻: Console 完整方法手冊
- Chrome DevTools 指南: 像專家一樣進行偵錯