|
| 1 | +# JavaScript 核心技術與實作應用彙整 |
| 2 | + |
| 3 | +本專案集結了 JavaScript (ES6+) 的核心概念筆記、現代語法特性分析,以及四個階段性實戰練習。內容旨在鞏固 JavaScript 基礎,並銜接現代前端框架(如 React)的開發需求。 |
| 4 | + |
| 5 | +## 📂 目錄結構 |
| 6 | + |
| 7 | +* **AI 生成基礎筆記**:涵蓋 React 開發必備的 JS 核心知識。 |
| 8 | +* **教學影片精華筆記**:系統化整理 6 小時課程之技術重點。 |
| 9 | +* **實戰小專案**:透過 DOM 操作、非同步處理與邏輯封裝建立實作經驗。 |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## 🚀 學習 React 前的 JS 必修重點 |
| 14 | + |
| 15 | +在深入前端框架前,本專案重點整理了以下基石觀念: |
| 16 | + |
| 17 | +* **變數與作用域**:理解 `let` 與 `const` 的區塊作用域,以及 `var` 的提升(Hoisting)行為。 |
| 18 | +* **核心陣列操作**:熟練 `map()`、`filter()`、`reduce()`、`find()` 等不改變原始陣列的資料處理方法。 |
| 19 | +* **非同步程式設計**:掌握 `Promise` 狀態與 `async / await` 現代語法,並運用 `Fetch API` 處理 JSON 資料。 |
| 20 | +* **現代語法糖**:包含解構賦值(Destructuring)、展開運算子(Spread Operator `...`)、可選連鎖(Optional Chaining `?.`)與三元運算子。 |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## 🛠️ 實戰專案說明 |
| 25 | + |
| 26 | +本倉庫包含四個循序漸進的 Web 實作項目: |
| 27 | + |
| 28 | +### 1. 黃綠紅選色器 (Color Picker) |
| 29 | + |
| 30 | +* **重點技術**:DOM 元素抓取 (`querySelector`)、事件監聽 (`addEventListener`)、`forEach` 批次處理按鈕邏輯。 |
| 31 | +* **目標**:熟悉「選取元素 -> 綁定事件 -> 修改樣式/內容」的標準流程。 |
| 32 | + |
| 33 | +<img width="2560" height="1440" alt="螢幕擷取畫面 2026-01-30 224311" src="https://github.com/user-attachments/assets/8222ed42-883a-4219-90a2-fc7261c9fc0e" /> |
| 34 | + |
| 35 | +### 2. JS 碼錶 (Stopwatch) |
| 36 | + |
| 37 | +* **重點技術**:`setInterval` 與 `clearInterval` 的時間控制、狀態變數管理、字串補零處理。 |
| 38 | +* **目標**:理解資料模型(Model)與畫面顯示(View)分離的初步概念。 |
| 39 | + |
| 40 | +<img width="2560" height="1440" alt="螢幕擷取畫面 2026-01-30 224322" src="https://github.com/user-attachments/assets/864890e7-659e-4d29-b52f-5667f320b0df" /> |
| 41 | + |
| 42 | +### 3. 剪刀石頭布 (Rock Paper Scissors) |
| 43 | + |
| 44 | +* **重點技術**:`Math.random()` 應用、**查表法 (Lookup Table)** 邏輯封裝。 |
| 45 | +* **目標**:捨棄冗長的 `if-else`,改用物件對照表處理複雜的勝負判斷。 |
| 46 | + |
| 47 | +<img width="2560" height="1440" alt="螢幕擷取畫面 2026-01-30 224334" src="https://github.com/user-attachments/assets/fa6dd91e-55df-45cd-a781-84c3c30610f2" /> |
| 48 | + |
| 49 | +### 4. 狗狗產生器 (Dog Generator) |
| 50 | + |
| 51 | +* **重點技術**:`fetch` 非同步資料串接、`try...catch` 錯誤保護機制、動態圖片渲染。 |
| 52 | +* **目標**:模擬真實前端開發中與 API 連線並處理加載狀態(Loading/Error/Success)的場景。 |
| 53 | +* |
| 54 | +<img width="2560" height="1440" alt="螢幕擷取畫面 2026-01-30 224418" src="https://github.com/user-attachments/assets/b04a5787-6202-403c-b7cf-ac0cea5d8f3c" /> |
| 55 | +--- |
| 56 | + |
| 57 | +## 💡 進階補充 |
| 58 | + |
| 59 | +* **查表法應用**:利用物件或陣列取代多重 `switch` 或 `if-else`,提升程式碼可讀性與擴充性。 |
| 60 | +* **箭頭函式與 IIFE**:解析匿名函式立即執行(Immediately Invoked Function Expression)的特性及其在閉包與環境隔離中的作用。 |
| 61 | +* **`this` 綁定規則**:對比傳統函式的動態綁定與箭頭函式的詞法作用域(Lexical `this`)綁定差異。 |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## 📈 建議學習路徑 |
| 66 | + |
| 67 | +本專案建議遵循以下順序進行能力提升: |
| 68 | + |
| 69 | +1. **熟練 JavaScript (ES6+)**:掌握現代語法基礎。 |
| 70 | +2. **學習 React**:建立前端介面開發能力。 |
| 71 | +3. **學習 Node.js & Express**:掌握後端 API 開發。 |
| 72 | +4. **學習 MongoDB**:掌握資料模型設計與資料庫串接。 |
0 commit comments