この授業のゴール
クイズ・タイマー・ToDoリストのうち、2つ以上を完成させる。
進め方 ― 3つの作品 共通
どの作品にも「見本(答え)」を用意してあります。ゼロから考える必要はありません。
- 見本で遊ぶ見本(答え)のファイルをブラウザで開いて、まず遊んでみる。
- 写して動かす自分のフォルダに写して、同じものを動かす。コピペでもOK、余裕があれば手で写すのがおすすめです。コメント(説明書き)を読みながら進めると、復習になります。
- 改造する見本の一番下にある「改造のヒント」を、1つ以上やってみる。ここまでできたら「完成」です。
余力があれば、自分のアイデアをさらに足しましょう。それが「自分の作品」になります。
1. 作品A: クイズアプリ(おすすめ度 ★★★)
一番取り組みやすく、学んだことが全部入る作品です。ここから始めるのがおすすめです。
要件:
- 問題文が表示されている
- 答えのボタンが2つ以上ある
- 押すと「正解!」「残念!」がページに表示される(alert ではなく textContent で)
- 点数が変数で記録されて、画面に表示される
作る順番のヒント:
- 問題1問 + ボタン2つ + 結果表示の
pだけの「最小クイズ」をまず動かす。(授業5「イベントと画面の書き換え」の知識だけでできます) - 点数の変数
tensuuを足して、正解のときtensuu = tensuu + 10;。 - 判定を関数にまとめる。問題を増やしたくなったら、増やす前にスタッフかAIに「2問目の増やし方」を相談する。(いきなり全部作らないのがコツです)
見本(答え): quiz-mihon.html ― 動物クイズ1問+点数つきの答えです。改造のヒント3つ入り。
2. 作品B: タイマー(おすすめ度 ★★)
「時間」という新しい部品が出てきます。新しい関数は1つだけです。
要件:
- スタートボタンを押すと、数字が1秒ごとに増えて(または減って)いく
- ストップボタンで止まる
- 経過秒数がページに大きく表示される
カギになる道具: setInterval(関数, 1000) は「1000ミリ秒(=1秒)ごとに、その関数を繰り返し実行して」という命令です。止めるときは clearInterval()。この2つだけ新しく調べれば、あとは今までの知識で作れます。
ヒント: まず「1秒ごとに console.log("カチッ")」だけのプログラムを動かしてみると、仕組みがすぐ分かります。
見本(答え): timer-mihon.html ― スタート・ストップ・0に戻す、の3ボタンつきの答えです。
3. 作品C: ToDoリスト(おすすめ度 ★・卒業制作)
「入力したものをリストに追加していく」、本物のWebアプリと同じ構造を持った作品です。3つの中では一番歯ごたえがあります。
要件:
- 入力欄と「追加」ボタンがある
- 追加すると、入力した内容がリスト(
ul)の新しい行になる - 空っぽのまま追加しようとすると、注意の文が出る(if の出番です)
カギになる道具: 新しい行(li)を作る document.createElement("li") と、リストに追加する 追加先.appendChild(新しい行)。「部品を作る → 取り付ける」の2段階です。
見本(答え): todo-mihon.html ― 空っぽチェックつきの答えです。改造のヒントに「線を引く」「消えないようにする」も入っています。
4. 困ったときの作戦表
- コンソール(F12)の赤い文字を読む行番号を見て、その行と前後をながめます。
- console.log で中身をのぞく「変数に何が入っているか」を出してみると、思いこみとのズレが見つかります。
- AIに聞くエラーメッセージとコードを貼って、「このエラーの意味と直し方を教えて」と聞きます。出てきた答えをそのまま貼らず、1行ずつ意味を確かめながら直すのが、力になる使い方です。
- 15分なやんだらスタッフへ「どこまで動いていて、どこから動かないか」を伝えられたら、それ自体がプロの報告スキルです。
5. 提出
やってみよう
- 完成した作品のフォルダを zip にして提出する。(Step 2 の授業7「作品づくり」と同じ流れです)
- スタッフに実際に触って遊んでもらう。
- 「一番苦労したところと、どう解決したか」を1分で話す。これが言えれば、Step 3 は堂々の修了です。
発展チャレンジ(慣れている方・A型の方向け)
発展チャレンジ
- クイズを「配列」で作り直してみましょう。
let mondai = ["問1", "問2", "問3"];のように問題をまとめて持つと、何問でも増やせる設計になります。配列は Step 4 フロントエンドコースの主役です。 - ToDoリストに「完了したら線を引く」「削除ボタン」を足してみましょう。
localStorageを調べて、ToDoが「ページを閉じても消えない」ようにしてみましょう。実はこのサイトの「できたチェック」も同じ仕組みで動いています。