黃帶 · 第一次動手
第 05 章

第一行 code —
就在這個頁面跑

這章結束你會在瀏覽器裡親手跑出 JavaScript,印出文字、做運算、使用變數,並讀懂第一個錯誤訊息。

開場 · 安全練習場

很多人以為寫程式的第一步,是先安裝一堆看不懂的工具。這章先把那件事拿掉。你現在看到的頁面,就是工作室,也是安全的練習場。你會把一行食譜交給電腦,請它照做,然後立刻看見結果。做錯也沒關係,按 reset 就回到原點。今天的目標不是背語法,而是親手確認:我打一行 code,電腦真的會照著跑。

為什麼第一站選 JavaScript

這門課的第一行 code 選 JavaScript,不是因為它最神秘,也不是因為它比較高級,而是因為它離你最近。你每天打開的瀏覽器(browser),例如 Chrome、Safari、Edge,本來就會執行 JavaScript。網頁按鈕會動、表單會檢查、購物車會更新,很多時候背後都有 JavaScript 在工作。

對完全不會寫程式的人來說,第一個門檻常常不是觀念,而是環境。安裝工具、設定路徑、處理版本,這些事情很重要,但不適合放在第一天。第一天最重要的是讓你看見因果:我輸入一段食譜,電腦照著做,結果出現在畫面上。這個因果一旦建立,你就不再只是看別人寫 code。

JavaScript 的好處是,這個頁面就能當你的工作室。左邊是你寫食譜的地方,中間或下方是執行結果,按下 Run,瀏覽器就會把你的指令交給 JavaScript 引擎處理。你不用知道引擎裡面每個齒輪怎麼轉,但你要知道一件事:電腦不會猜你的意思,它只會照你寫下來的字元做事。

這也是從白帶進到黃帶的差別。前四章我們用食譜、盒子、判斷、重複、函式建立程式思維;從這章開始,你要把那些想法放進真的 code 裡。今天不追求寫很多,只追求每一行都知道自己在要求電腦做什麼。

用 console.log 把兩行文字送到輸出區。
console.log("你好,世界");
console.log("這行 code 是在瀏覽器裡跑的");

console.log 是把結果喊出來

第一個要認識的工具是 console.log。主控台(console)可以想成工作室裡的紀錄板,log 是把訊息記上去。你寫 console.log("哈囉!"),意思不是叫電腦做一個網頁標題,也不是寄出訊息,而是請它把 "哈囉!" 這段內容顯示在輸出(output)裡,方便你確認程式有沒有跑到這一步。

把這行拆開看,console 是地方,.log 是動作,括號 () 裡面放你要交給這個動作的材料。引號 "" 代表裡面的東西是一段文字,在程式裡叫字串(string)。分號 ; 像一句話結尾的句號,JavaScript 很多時候可以沒有它,但初學時先養成寫上去的習慣,會讓每一行更清楚。

請注意,電腦看字元很嚴格。console.log("哈囉!") 裡的括號如果少一邊,引號如果只打一個,對人類來說可能只是小筆誤;對電腦來說,食譜就斷掉了。它不會替你補字,也不會猜「你應該是想印出哈囉」。這不是電腦在刁難,而是程式世界的交換條件:只要你把指令寫清楚,它就會很穩定地重複同一件事。

以後你請 AI 這個實習生幫忙寫 code,console.log 也會是你檢查它有沒有做對的第一個工具。不要只看 AI 說「完成了」,要自己跑,自己看輸出。會印出結果,就是你開始掌握驗證的第一步。

兩次 console.log 會依序印出兩行訊息。
console.log("哈囉!");
console.log("我正在學第一行 JavaScript");

讓電腦當不會累的計算機

JavaScript 不只能印文字,也能做數字運算。+ 是加,- 是減,* 是乘,/ 是除。你可以把 365 * 24 放進 console.log 裡,電腦會先算出結果,再把答案印出來。這和你在計算機按鍵很像,只是現在按鍵變成一行可以保存、修改、重複執行的食譜。

運算也有順序。JavaScript 會先處理乘除,再處理加減;如果你想指定順序,就用括號。(10 + 5) * 2 會先算 10 + 5,再乘以 2,結果是 30。沒有括號的 10 + 5 * 2 會先算 5 * 2,再加 10,結果是 20。這不是數學考試,而是讓你看到:同樣幾個符號,排列方式不同,食譜就不同。

初學者最容易混淆的是數字和文字。365 * 24 沒有引號,JavaScript 會把它當數字運算。"365 * 24" 有引號,JavaScript 會把整段當文字,原樣印出來。這一點很重要,因為 AI 產出的 code 有時候看起來像會算,其實只是把文字印出來。你要看輸出是不是正確答案,而不是只看 code 很像。

練習時,先從心算能驗證的數字開始。你知道 365 * 24 是一年有幾小時,答案應該是 8760。如果輸出不是這個數字,就表示食譜裡某個材料或順序錯了。程式不是黑盒子,它每次都會留下可檢查的結果。

同時看乘法與括號優先順序的輸出。
console.log(365 * 24);
console.log((10 + 5) * 2);
console.log(10 + 5 * 2);

字串、變數與加號的兩種角色

接著把文字和資料放在一起。字串(string)就是用引號包起來的文字,例如 "我叫"。變數(variable)可以想成 ch02 學過的有名字的盒子,盒子裡放一個值,之後用盒子的名字取出來。寫 const name = "小安";,意思是建立一個叫 name 的盒子,裡面放 "小安"。再寫 console.log("我叫" + name);,JavaScript 會把文字和盒子裡的內容接起來,印出 我叫小安

這裡的 + 很值得停一下。兩邊都是數字時,+ 是加法,例如 10 + 5 會得到 15。其中一邊是字串時,+ 常常會變成拼接,把兩段內容接在一起。"我今年" + 18 + "歲" 會印出 我今年18歲,不是把文字拿去做數學。電腦沒有生活常識,它只看資料的形狀。

const 代表這個盒子建立後不打算換內容。你現在不用背完整規則,只要先記住:const name = "小安"; 是把資料命名,讓後面的食譜可以重複使用。當 code 變長時,變數能讓你少抄錯,也讓人比較容易讀懂這段程式在處理什麼。

使用 AI 時,這個觀念會直接派上用場。你可以要求實習生「把使用者名字存在 name,再組成一句歡迎訊息」。它如果把所有文字硬塞在一行,你就知道這段 code 不容易改;它如果有清楚的變數,你就能用盒子的觀念檢查資料有沒有放對。

比較數字加法與字串拼接的差別。
const name = "小安";
const age = 18;
console.log("我叫" + name);
console.log("我今年" + age + "歲");
console.log(10 + 5);
console.log("10" + 5);

故意打錯,讀第一行紅字

現在做一件重要的事:故意把 code 打錯。很多新手第一次看到紅字會停住,以為自己不適合寫程式。其實紅字不是審判,它只是電腦回報「這份食譜我讀到某一段時卡住了」。你要練的不是永遠不犯錯,而是看見錯誤訊息後,能找到第一個該檢查的位置。

最常見的是語法錯誤(SyntaxError)。語法就是程式語言的句型。少一個引號、少一個括號、把 console 拼成 consol,都可能讓電腦不知道怎麼讀。錯誤訊息通常會有好幾行,第一行最重要,因為它會先告訴你錯誤種類,例如 SyntaxErrorReferenceError。先讀種類,再看它指向哪一行,不要從整片紅字裡亂猜。

例如你寫 console.log("哈囉!);,少了右邊的引號。人類看得懂你想印哈囉,JavaScript 不行,因為它看到字串開始了,卻找不到字串結束的位置。修法不是重寫整個程式,而是補回缺少的引號。這個動作很小,但心態很關鍵:錯誤訊息把範圍縮小,你照著線索改一個地方,再跑一次。

這就是差別會拉開的地方。純 vibe coder 只把錯誤丟回 AI,等它再吐一版;你要先自己讀第一行,描述你看到的錯誤,再請 AI 這個實習生協助。你不是要比 AI 會寫,而是要比它更會驗收。敢跑 code、敢看紅字、敢修一個小地方,這章就完成了。

修好語法後,兩行輸出都會正常出現。
console.log("第一行可以跑");
console.log("錯誤修好後,下一行也會跑");

把跑 code 變成驗收習慣

這章最後要把動作收成一個固定流程。看到一段 JavaScript,不要先問自己「我是不是全部都懂」,先問三件小事:它會印出什麼、我能不能用心算或常識預測、實際輸出是不是一致。這三件事比背更多術語更重要,因為它們讓你從旁觀者變成驗收者。

當 AI 這個實習生交出 code,你可以要求它一起交出可檢查的輸出。例如請它在重要步驟加上 console.log,印出目前處理的名字、年齡、計算結果或錯誤狀態。你不需要一次讀懂整份食譜,但你可以要求它把每個關鍵步驟端到紀錄板上。只要輸出不符合預期,就代表還不能說完成。

這個習慣也會保護你不被漂亮的 code 騙過。有些程式排版整齊、變數名稱好看,但運算順序錯了;有些回答看起來很有自信,實際跑起來第一行就紅字。你現在已經有最小的檢查工具:按 Run、看輸出、讀第一行錯誤、改一個地方、再跑一次。這個循環很短,卻是所有後面專案的基礎。

請把今天的成果定義得很具體:你能用 console.log 印出文字,能讓電腦做四則運算,能用變數把資料取名字,能分辨字串和數字,還能在錯誤發生時先讀第一行。這些不是表演用的技巧,而是你每次使用 AI 寫程式時都會用到的基本驗收動作,也會讓你在每次修改後留下可追蹤的證據。

把任務、輸出、驗收結果都印出來,養成可檢查的工作流程。
const task = "印出名字";
const result = "我叫小安";
console.log("任務:" + task);
console.log("輸出:" + result);
console.log("驗收:通過");
招牌互動 · first-playground

第一行 Code Playground

按 Run 執行左邊的 JavaScript,完成 5 張任務卡;做錯可按 Reset 回到安全起點。

你的工作室 · JavaScript
輸出會出現在這裡。先按 Run,看看電腦照著做了什麼。
任務卡會保留完成狀態;Reset 只重設程式與輸出。
✓ 黃帶第一步完成 你已經能自己跑 code 並驗證輸出。+30 XP 入袋。

純 vibe coder 常停在「AI 說它寫好了」。你現在多做三個動作:自己按 Run、自己看輸出、自己讀第一行錯誤訊息。請 AI 這個實習生寫 code 時,你可以要求它加上 console.log,把關鍵資料印出來給你檢查。這不是多此一舉,而是把驗收權拿回自己手上。

隨堂測驗 · 5 題

檢查一下這章

下一章預告

下一章會把 HTML、CSS、JavaScript 三兄弟放在一起,讓網頁不只會算,還真的長出畫面。