跳至主要内容

本章為 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 公會報到處

⚔️ 任務鑑定條件:

  1. 📜 本日實戰任務:控制台覺醒實驗室 (CodePen)
  2. 將 CodePen 網址貼至 QuestBoard,並回填鑑定報告:
    • 初心者:公會入隊鑑定 (成就感發掘)
      • 1.今天第一次成功在「控制台」看到你輸入的名字時,有沒有一種「代碼終於開口說話」的感覺?
    • 冒險者:洞察顏色辨析 (理性挑戰)[⚡ 觀念辨析]
      1. 當我執行 console.log(100+200)console.log("100+200") 時,呈現出來的顏色有什麼不同?
  3. 任務完成後,你的名字將永遠標記在公會的英雄榜上!

📚 【圖書館卷軸:延伸學習】