iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
佛心分享-IT 人自學之術

30 天體驗:從程式菜鳥到前端新手工程師系列 第 15

網頁動起來!JavaScript 初體驗 (Day15)

  • 分享至 

  • xImage
  •  

前兩週我們把房子蓋好(HTML 結構)也裝潢漂亮(CSS 樣式),但它還是「靜態」的。
今天,我們要接上電力系統 —— JavaScript (JS),讓網頁開始對使用者有反應,真正「活起來」⚡!

1. 什麼是 JavaScript?

一種在瀏覽器就能跑的程式語言。
讓網頁產生互動(按鈕點了有反應、內容會更新、會檢查輸入……)。
前端三元素:HTML(結構)、CSS(外觀)、JS(互動/邏輯)。

2. 把 JS 放進 HTML 的三種方式

(A) 內嵌(最即時)

<script>
  console.log('Hello JS');
</script>

•優點:快速、方便示範。
•缺點:程式跟結構混在一起,不利維護。

(B) 外部檔案(建議)

<!-- HTML -->
<script src="app.js"></script>
// app.js
console.log('Hello from app.js');

•優點:好維護、可重複使用。
•路徑要正確(跟 CSS 一樣)。

(C) defer(最佳實務之一)

<script src="app.js" defer></script>

•defer 讓 HTML 可以先解析完,再執行 JS(避免 DOM 還沒準備好就操作的報錯)。

3. 最基本輸出:讓我們先「說話」

(1) console.log(開發者主控台輸出)

<script>
  console.log('這行只會出現在瀏覽器的 Console!');
</script>

•打開瀏覽器 → F12 → Console 就能看到。

(2) alert(跳出小視窗)

<script>
  alert('哈囉!這是我的第一個 JS 視窗');
</script>

(3) 寫到頁面上(避免用 document.write,改用 DOM)

<h1 id="title">原本的標題</h1>
<script>
  const title = document.getElementById('title');
  title.textContent = 'JS 改了這段文字 🎉';
</script>

4. DOM 操作超入門:選元素 → 改內容 / 改樣式

常用選取

document.getElementById('id名')
document.querySelector('CSS選擇器')       // 如 '#title'、'.btn'、'p'
document.querySelectorAll('CSS選擇器')     // 取得一組節點

改內容 / 改樣式 / 切換 class

title.textContent = '新標題';
title.style.color = 'deepskyblue';
title.classList.toggle('active'); // 有則移除、無則加入

5. 事件(Event):讓按鈕「有反應」

範例:點按鈕改文字

<h2 id="msg">點按鈕看看!</h2>
<button id="btn">點我</button>

<script>
  const msg = document.getElementById('msg');
  const btn = document.getElementById('btn');

  btn.addEventListener('click', () => {
    msg.textContent = '按到了!內容被 JS 換掉啦 🙌';
  });
</script>

範例:切換深色主題

<style>
  body.dark { background:#111; color:#fff; transition: .3s; }
</style>

<button id="theme">切換主題</button>

<script>
  const themeBtn = document.getElementById('theme');
  themeBtn.addEventListener('click', () => {
    document.body.classList.toggle('dark');
  });
</script>

6. 🎯 今日實戰

(1) Hello JS 三連發

目標:同時用三種方式輸出「Hello, JS!」

<h3 id="hello"></h3>
<script>
  // 1) Console
  console.log('Hello, JS!');

  // 2) alert
  alert('Hello, JS!');

  // 3) 寫進頁面
  document.getElementById('hello').textContent = 'Hello, JS! 👋';
</script>

https://ithelp.ithome.com.tw/upload/images/20250929/20178705lc2vb42vUy.png

https://ithelp.ithome.com.tw/upload/images/20250929/20178705OiHPnFMxhl.png

(2) 按鈕互動:點我改字 + 變色

<h2 id="title">今天要好好學 JS!</h2>
<button id="change">改文字</button>
<button id="color">變顏色</button>

<script>
  const title = document.getElementById('title');
  document.getElementById('change').addEventListener('click', () => {
    title.textContent = '文字被改囉 😎';
  });
  document.getElementById('color').addEventListener('click', () => {
    title.style.color = title.style.color === 'tomato' ? '' : 'tomato';
  });
</script>

https://ithelp.ithome.com.tw/upload/images/20250929/20178705nns2zzEkEN.png!

改文字:
https://ithelp.ithome.com.tw/upload/images/20250929/20178705sD7TqqowLO.png

改顏色:
https://ithelp.ithome.com.tw/upload/images/20250929/20178705g86NYLyqNw.png

(3) 輸入即時預覽(超有成就感)

<input id="name" placeholder="輸入你的名字">
<p>嗨,<span id="preview">陌生人</span>!</p>

<script>
  const input = document.getElementById('name');
  const preview = document.getElementById('preview');

  input.addEventListener('input', () => {
    preview.textContent = input.value || '陌生人';
  });
</script>

https://ithelp.ithome.com.tw/upload/images/20250929/20178705N6X25qOu2z.png

•文字框可連動下面輸入及時文字。

今日小結

•了解 JS 是什麼、為什麼它能讓網頁動起來。
•學會在 HTML 中加入 JS:內嵌 / 外部檔案 / defer。
•完成三種輸出 & 兩個互動小範例(改文字、切換主題)。
•初次接觸 DOM 操作 + 事件綁定,正式踏入互動網頁的世界!

恭喜大家!JS 啟動成功 🚀
明天 Day 16 我們會深入 變數與資料型態(let、const、字串/數字/布林),把資料「裝起來」再拿出來用,互動就能更聰明、更強大!


上一篇
把網頁變活潑的小魔法:CSS動畫與過渡 (Day14)
下一篇
資料小倉庫!變數與資料型態(Day16)
系列文
30 天體驗:從程式菜鳥到前端新手工程師18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言