JavaScript 完整入門課程 適合初學者

← 返回首頁

學習重點:從用途、語法、資料型態、陣列/物件,到 DOM、Canvas、正則、JSON、jQuery、爬蟲示範、React、Node 平行運用,一頁打通。

可點目錄直達各節;多數小節提供程式碼與練習提示。

目錄

  1. 1. JavaScript 用來做什麼
  2. 2. JavaScript 基本功能
  3. 3. 深入理解 JavaScript 資料型態 (Data Types)
  4. 4. javascript的資料型態有哪些
  5. 5. javascript字串處理
  6. 6. Javascript 字串處理函式
  7. 7. JavaScript 數值函數介紹。
  8. 8. javascript數值函式
  9. 9. javascript 有關陣列宣告處理和應用
  10. 10. Java script的陣列(Array)
  11. 11. JavaScript 迴圈的用法說明及使用
  12. 12. JavaScript 迴圈應用
  13. 13. JavaScript if用法
  14. 14. switch用法有哪些及說明
  15. 15. Java script的sort排序及演算法
  16. 16. JavaScript 函式互動學習中心
  17. 17. JavaScript Canvas 入門示範教學
  18. 18. Javascript的正則表示式如何用擧例
  19. 19. Javascript Json物件的使用介紹
  20. 20. JavaScript json物件使用方法
  21. 21. 什麼是jQuery?
  22. 22. jQuery如何使用?及說明
  23. 23. avaScript 如何開啟其他網頁
  24. 24. 使用Java script 寫一個爬蟲程式
  25. 25. JavaScript 爬蟲示範
  26. 26. 做出一個React計數器
  27. 27. Node.js 平行運用的核心做法
  28. 28. Node.js的平行運用
  29. 29. JavaScript 的資料輸入與資料取得

1. JavaScript 用來做什麼

JS 是瀏覽器內建腳本語言:操控網頁互動、動態更新畫面、處理事件、與伺服器交換資料,也能在 Node.js 當後端。

小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

2. JavaScript 基本功能

宣告變數、條件、迴圈、函式、事件監聽、非同步(Promise/async/await)、與 DOM 操作。

function sum(n){ let s=0; for(let i=1;i<=n;i++) s+=i; return s; }
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

3. 深入理解 JavaScript 資料型態 (Data Types)

原始型別:Number、String、Boolean、Null、Undefined、Symbol、BigInt;物件型別:Object、Array、Function、Date、RegExp…

// typeof / Array.isArray 等快速觀察型別
console.log(typeof 123, typeof 'hi', typeof true, typeof undefined);
console.log(typeof null, typeof Symbol(), typeof 1n);
console.log(Array.isArray([]), typeof {});
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

4. javascript的資料型態有哪些

快速表列與 typeof 範例。

// typeof / Array.isArray 等快速觀察型別
console.log(typeof 123, typeof 'hi', typeof true, typeof undefined);
console.log(typeof null, typeof Symbol(), typeof 1n);
console.log(Array.isArray([]), typeof {});
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

5. javascript字串處理

字串不可變;索引、長度、取子字串與搜尋。

const s=' Hello JavaScript ';
console.log(s.length, s.trim().toUpperCase(), s.includes('Java'), s.slice(1,6));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

6. Javascript 字串處理函式

常用:slice/substring/substr、indexOf/includes、startsWith/endsWith、toUpperCase/toLowerCase、trim、split/join、replace/replaceAll。

const s=' Hello JavaScript ';
console.log(s.length, s.trim().toUpperCase(), s.includes('Java'), s.slice(1,6));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

7. JavaScript 數值函數介紹。

Math:abs/floor/ceil/round/max/min/random/pow/sqrt/trig…

console.log(Math.abs(-7), Math.ceil(3.2), Math.floor(3.8), Math.max(3,9,5), Math.random().toFixed(3));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

8. javascript數值函式

補充:Number() 轉型、parseInt/parseFloat、isNaN、Number.isInteger、toFixed/toPrecision。

console.log(Number('3.14'), parseInt('08',10), isNaN('x'/3));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

9. javascript 有關陣列宣告處理和應用

陣列:push/pop/shift/unshift、forEach/map/filter/reduce/some/every、find/findIndex、includes、slice/splice。

const arr=[3,6,5,2]; const squared=arr.map(x=>x*x); const evens=arr.filter(x=>x%2===0); const sum=arr.reduce((a,b)=>a+b,0);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

10. Java script的陣列(Array)

多維陣列、展開運算子(...)、解構賦值、深拷貝 vs 淺拷貝。

const arr=[3,6,5,2]; const squared=arr.map(x=>x*x); const evens=arr.filter(x=>x%2===0); const sum=arr.reduce((a,b)=>a+b,0);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

11. JavaScript 迴圈的用法說明及使用

for、while、do...while、for...of、for...in,與 break/continue。

for (let i=0;i<3;i++) console.log('i=',i);
for (const v of ['a','b']) console.log(v);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

12. JavaScript 迴圈應用

迴圈應用:巢狀、提前結束條件。

for (let i=0;i<3;i++) console.log('i=',i);
for (const v of ['a','b']) console.log(v);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

13. JavaScript if用法

if/else if/else、三元運算子、guard clauses。

const score=78; const level=score>=60 ? '及格' : '不及格';
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

14. switch用法有哪些及說明

switch/case/default、break、合併多 case、改寫成查表。

const day=5; let type='';
switch(day){ case 1: case 2: case 3: type='平日'; break; case 6: case 7: type='週末'; break; default: type='其他'; }
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

15. Java script的sort排序及演算法

Array.sort 比較函式、數字/字串排序、穩定性、常見排序演算法。

const nums=[13,2,7,19,8]; nums.sort((a,b)=>a-b);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

16. JavaScript 函式互動學習中心

函式、箭頭函式、閉包、回呼與高階函式。

function makeAdder(x){ return y=>x+y; } const add5=makeAdder(5); console.log(add5(3));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

17. JavaScript Canvas 入門示範教學

Canvas 2D:context、線條與圓形、填色、requestAnimationFrame。

const c=document.getElementById('cv'); const ctx=c.getContext('2d'); ctx.fillStyle='#4f46e5'; ctx.fillRect(10,10,80,40); ctx.beginPath(); ctx.arc(120,30,20,0,Math.PI*2); ctx.fillStyle='#06b6d4'; ctx.fill();
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

18. Javascript的正則表示式如何用擧例

RegExp:test()/match()/replace(),常見模式(Email/手機/數字)。

const re=/^[^\s@]+@[^\s@]+\.[^\s@]+$/; console.log(re.test('user@example.com'));
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

19. Javascript Json物件的使用介紹

JSON 格式與用途、與 JS 物件差異。

const obj={name:'梅枝',score:95}; const json=JSON.stringify(obj); const obj2=JSON.parse(json);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

20. JavaScript json物件使用方法

JSON.stringify / JSON.parse,取代函式與縮排。

const obj={name:'梅枝',score:95}; const json=JSON.stringify(obj); const obj2=JSON.parse(json);
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

21. 什麼是jQuery?

jQuery 的角色與現況(舊專案仍常見)。

/* 傳統:$('#id').text('...') / $.ajax(...)
   現代:document.querySelector('#id').textContent='...'
   或用框架(React/Vue/Svelte) */
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

22. jQuery如何使用?及說明

CDN 引入與常見操作:選取、事件、文字/屬性、AJAX。

/*


*/
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

23. avaScript 如何開啟其他網頁

window.open、location.href、 的 target;注意阻擋策略。

// location.href='https://example.com';
// window.open('https://example.com','_blank');
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

24. 使用Java script 寫一個爬蟲程式

同源限制下的同網域 BFS;伺服端可用 cheerio/puppeteer。

async function fetchHTML(url){ const res=await fetch(url); const html=await res.text(); const doc=new DOMParser().parseFromString(html,'text/html'); return { title: doc.querySelector('title')?.textContent || '(無標題)', links: [...doc.querySelectorAll('a[href]')].map(a=>a.href) }; }
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

25. JavaScript 爬蟲示範

同網域爬蟲最小範例。

async function fetchHTML(url){ const res=await fetch(url); const html=await res.text(); const doc=new DOMParser().parseFromString(html,'text/html'); return { title: doc.querySelector('title')?.textContent || '(無標題)', links: [...doc.querySelectorAll('a[href]')].map(a=>a.href) }; }
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

26. 做出一個React計數器

以 CDN 實作 React 計數器元件。

/* React CDN 計數器(示意)


*/
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

27. Node.js 平行運用的核心做法

Node 事件迴圈與非阻塞 I/O、worker_threads / cluster。

setTimeout(()=>console.log('timer'),0);
Promise.resolve(1).then(()=>console.log('microtask'));
console.log('sync');
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

28. Node.js的平行運用

使用 worker_threads 進行計算密集平行化(概念)。

/* Node worker_threads(概念)
const { Worker, isMainThread, parentPort, workerData } = require('node:worker_threads');
*/
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

29. JavaScript 的資料輸入與資料取得

取值、alert 與頁面輸出;對應 js-input-output.html。

const s=document.getElementById('john')?.value || '(尚未輸入)';
const p=document.getElementById('pw')?.value || '(尚未輸入)';
// document.getElementById('out').textContent='帳號:'+s+'\n密碼:'+p;
完整互動頁面:js-input-output.html
小練習:把上方範例貼到瀏覽器 Console 或建立一個 .html 測試頁,修改數值看看輸出有何變化。

© 戴梅枝 — 本頁提供入門教學與可執行小範例。建議用桌機或橫向平板瀏覽。