JavaScript 是什麼?先理解網頁互動的核心
JavaScript 是能讓網頁產生互動的程式語言,常見用途包括按鈕點擊回應、表單檢查、購物車金額計算、內容更新與資料載入。學習 JavaScript,最直接的起點就是在瀏覽器執行一小段程式,再把它連接到網頁上的元素。
網頁開發常見的三項技術各有分工:HTML 建立內容結構,CSS 控制外觀,JavaScript 處理行為與邏輯。例如登入表單的輸入框由 HTML 建立,顏色與排列交給 CSS,按下按鈕後的欄位檢查則可以由 JavaScript 執行。
JavaScript 不只用於瀏覽器,也能透過 Node.js 等執行環境開發伺服器程式與工具。不過,JavaScript 入門可以先專注於瀏覽器,不必一次學完前後端技術。
JavaScript 安裝:準備瀏覽器與程式編輯器
在一般網頁中執行 JavaScript,通常不需要另外安裝語言套件,現代瀏覽器已具備執行能力。初學階段準備瀏覽器與純文字程式編輯器,就能開始練習。
先在 Console 執行第一行程式
以 Chrome 為例,開啟瀏覽器選單中的「開發人員工具」,切換到 Console,也就是主控台,輸入:
console.log("Hello World!");
按下 Enter 後,主控台會顯示 Hello World!。其中,console.log() 用來輸出資訊,適合觀察變數內容與程式執行結果;引號內的文字則稱為字串。
主控台適合快速測試,但正式練習仍應儲存成檔案,才能保留程式碼並逐步修改。
什麼時候才需要 Node.js?
當你要在電腦終端機執行 JavaScript,或使用套件管理、前端建置工具時,再安裝 Node.js 即可。初期學習變數、函式與網頁事件,不必先處理這些工具設定。
JavaScript 教學實作:把程式加入 HTML
在 HTML 中使用 JavaScript,常見方式包括事件屬性、內部 <script>,以及載入外部 .js 檔案。
三種 JavaScript 寫法比較
| 使用方式 | 程式放置位置 | 適合情境 | 維護上的差異 |
|---|---|---|---|
| 事件屬性 | 元素的 onclick 等屬性 |
理解簡單事件示範 | HTML 與邏輯混在一起,程式增加後較難整理 |
| 內部程式 | HTML 的 <script> 標籤內 |
單頁練習、小型範例 | 不必切換檔案,但頁面較長時不易閱讀 |
| 外部檔案 | 獨立 .js 檔案 |
多頁網站、持續開發的專案 | 結構與邏輯分開,也方便重複使用 |
建立可直接操作的 Hello World
新增 index.html,貼上以下內容,儲存後用瀏覽器開啟:
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<title>JavaScript 練習</title>
</head>
<body>
<h1 id="message">準備開始</h1>
<button id="helloButton" type="button">點我打招呼</button>
<script>
const button = document.querySelector("#helloButton");
const message = document.querySelector("#message");
button.addEventListener("click", function () {
message.textContent = "Hello World!";
});
</script>
</body>
</html>
點擊按鈕後,標題文字就會改變。document.querySelector() 負責取得元素,addEventListener() 設定事件發生時要執行的動作,textContent 則更新文字。
這個範例把 <script> 放在元素後面,讓程式執行時能找到已經建立的按鈕與標題。
改成外部 JavaScript 檔案
把原本 <script> 裡的 JavaScript 移到同一個資料夾的 app.js,移除原本的整段 <script> 標籤,再於 <head> 加入:
<script src="app.js" defer></script>
defer 會讓這類外部腳本等到 HTML 解析完成後執行。注意,.js 檔案只放 JavaScript,不需要再寫 <script> 標籤。
JavaScript 入門必學:從資料到函式
語法不必一次背完,但要理解資料如何儲存、條件如何判斷,以及程式如何重複執行。
變數、常數與資料型態
使用 let 宣告需要重新賦值的變數,使用 const 宣告不需要重新賦值的綁定:
let quantity = 2;
const price = 150;
const productName = "筆記本";
const isAvailable = true;
quantity = 3;
console.log(price * quantity);
常見資料包含數字、字串、布林值、undefined 與 null。陣列和一般物件也很常用,兩者都屬於物件型態。
const 不代表內容完全不能改變。如果它指向陣列或物件,仍可修改其中的項目或屬性,只是不能重新指定成另一個值。
變數名稱不能以數字開頭,也不能使用保留字。像 totalPrice 這種能表達用途的名稱,通常比 x、a 更容易維護。
運算子與條件判斷
+、-、*、/ 可進行基本運算;=== 用來做嚴格相等比較;&&、|| 與 ! 則能組合邏輯條件。
const total = 1200;
if (total >= 1000) {
console.log("符合此範例的免運條件");
} else {
console.log("尚未達到免運門檻");
}
初學時可優先使用 ===,減少隱含型別轉換造成的困惑。也要留意,"2" + 1 會得到字串 "21",而不是數字 3。
陣列、物件與迴圈
陣列適合儲存清單,物件適合描述一筆資料的多個屬性:
const products = [
{ name: "鉛筆", price: 20 },
{ name: "筆記本", price: 80 }
];
for (const product of products) {
console.log(product.name, product.price);
}
這段程式利用 for...of 逐一取得商品。理解這個結構後,就能延伸處理待辦事項、文章列表或購物車內容。
函式讓邏輯可以重複使用
函式能把一段工作包裝起來,透過參數接收資料,再用 return 回傳結果:
function calculateTotal(price, quantity) {
return price * quantity;
}
const totalPrice = calculateTotal(150, 3);
console.log(totalPrice);
return 與 console.log() 並不相同:前者把結果交回呼叫位置,後者只是顯示資訊。需要讓其他程式繼續使用計算結果時,應透過回傳值傳遞。
JavaScript 練習怎麼安排?從修改範例走向獨立完成
有效的練習不是反覆抄寫,而是先預測結果、執行程式,再解釋結果為什麼如此。完成範例後,至少修改一項需求,才能確認自己理解了邏輯。
第一階段:輸入、運算與輸出
先完成價格乘以數量、攝氏轉華氏、判斷分數是否達標等小題目。每題都清楚標示輸入資料、處理規則與預期結果,遇到錯誤時比較容易定位。
第二階段:加入網頁事件
把 Hello World 改成計數器:每按一次按鈕,畫面數字就加一。完成後再加入減一與重設功能,練習變數、事件及畫面更新之間的關係。
第三階段:完成小型作品
待辦清單可以練習新增、刪除與切換完成狀態;簡易購物車可以練習陣列與金額計算。先完成核心功能,再處理樣式與細節,不必一開始就加入所有功能。
處理表單時要記得,輸入欄位的 .value 通常是字串。若要計算,應先轉成數字並檢查輸入;空字串用 Number() 轉換會得到 0,因此不能只靠轉型判斷是否填寫。
JavaScript 自學資源:網站、書籍與 PDF 怎麼選?
選教材的重點是解說順序、範例完整度與練習設計,不是同時收藏多少資源。以一套教材建立主線,再搭配文件查詢,通常更容易持續。
JavaScript 教學網站:學觀念與查語法分開使用
MDN Web Docs 提供 JavaScript 指南與語法參考,適合查詢方法用途、參數及瀏覽器相關功能;部分內容可閱讀繁體中文版。
JavaScript.info 以主題章節組織教學,涵蓋語言基礎與瀏覽器操作,適合循序閱讀。
W3Schools 提供簡短範例與線上操作環境,適合快速修改程式並觀察結果。
使用網站時,應選擇 JavaScript 教材,而不是名稱相近的 Java 課程;兩者是不同的程式語言。
JavaScript 教學書:優先檢查目錄與範例
挑選書籍時,可確認是否包含 let、const、函式、陣列、物件、DOM 與事件處理,以及是否附有完整範例與習題。
教材若使用 var,不代表內容一定錯誤;但初學者最好能同時理解較新的宣告方式,以及不同寫法的作用範圍差異。
JavaScript 教學 PDF:留意版本與合法來源
PDF 適合離線閱讀與註記,選擇時應查看作者、發布來源及更新時間,優先使用作者授權、學校公開或官方提供的教材。
閱讀時要同步執行範例。語法可以透過筆記整理,但除錯能力仍需要親自修改與測試才能累積。
JavaScript 自學卡關時,先建立除錯流程
程式沒有反應時,先開啟 Console 查看錯誤,不要立刻重寫全部內容。接著確認檔案是否儲存、頁面是否重新整理,以及外部檔案路徑是否正確。
如果出現 ReferenceError,可先檢查名稱拼字與變數作用範圍;如果對 null 操作時出現 TypeError,則檢查選取條件,以及程式執行時元素是否已經存在。
基礎穩定後,再依序學習箭頭函式、解構賦值、展開語法、模組,以及 Promise、async/await 與 fetch()。非同步操作尤其要理解「等待結果」的流程,不能只按照程式碼由上到下的排列推測完成順序。
結論:先做出互動,再逐步補齊觀念
JavaScript 的學習起點,是讓一段程式確實產生可觀察的結果。先完成 Hello World,再掌握變數、條件、迴圈與函式,接著透過 DOM 和事件把邏輯接到網頁上。
每學完一個觀念,就用小功能驗證一次。能獨立修改需求、讀懂錯誤訊息並說明程式流程,比單純看完更多教材更有助於建立開發能力。
常見問題(FAQ)
1. 完全沒有程式基礎,可以直接學 JavaScript 嗎?
可以。建議先認識 HTML 標籤、屬性與基本 CSS 選取器,再搭配 JavaScript 練習。你不必先精通排版,但要理解程式正在操作哪個網頁元素。
2. 英文不好會影響 JavaScript 學習嗎?
可以先用繁體中文教材建立觀念,再逐步熟悉常見技術詞彙。遇到錯誤訊息時,保留原文查詢,通常比只查中文翻譯更容易找到對應說明。
3. JavaScript 一定要寫分號嗎?
JavaScript 有自動分號插入機制,部分情況可省略分號,但換行不一定代表敘述結束。初學時採用一致風格,並搭配格式化工具,比混用不同寫法更容易閱讀。
4. 可以直接開始學 React 或 Vue 嗎?
可以接觸,但先掌握函式、陣列操作、物件、事件與模組,較容易理解框架範例。能獨立完成簡單互動頁面後,再進入框架學習會更有脈絡。
5. 表單已經用 JavaScript 檢查,後端還需要驗證嗎?
需要。前端檢查能即時提示使用者,但送出的資料仍可能被修改。涉及登入、訂單或資料儲存時,後端也必須驗證輸入與操作權限。
6. 怎樣判斷自己已經掌握入門程度?
可以不照抄完整答案,獨立完成計數器、待辦清單或簡易計算器,並說明資料如何更新、事件何時觸發及錯誤如何排查,就具備繼續學習進階主題的基礎。