STEP 3 / 10

JavaScriptのきほん

HTMLが骨組み、CSSが見た目なら、JavaScript(JS)は「動き」の担当。ボタンを押したら何かが起きる、みたいな仕組みはぜんぶJSが作っているよ。

🐣 STEP 3のゴール

ボタンを押して、文字を変えてみよう

英語っぽい記号が増えるけど、最初は意味をぜんぶ読めなくてOK。ボタンと文字がつながって動くところを見てみよう。

できあがりの目印 ボタンを押したあとに、下のメッセージが変わったらクリア!
このページで出てくるものを見る
  1. ボタンを押すと文字が変わるしくみ
  2. ことばや数字に名前をつける
  3. 同じ命令をまとめる
  4. 「もし〜なら」で動きを分ける
  5. 同じことを何回かくり返す
最初の5分:ボタンを動かそう

まずは右のボタンを押してみてね。コードは、あとからゆっくり見ればOK!

文字が変わった? いま書いてあるJSは、ページの後半で1つずつほどいていくよ。

動きを1つずつ試してみよう

最初に右の画面を動かして、そのあとでコードの意味を見よう。いま開いている1項目だけでOK!

1数字をおぼえて、増やす変数のlet
いま増えた数字が「変数」だよ

let count = 0で、数字を覚える場所にcountという名前をつけているよ。ボタンを押すたびに、中の数字を新しくしている。

let count = 0;を1つずつ見る
  • let:あとで中身を変える値につける合図
  • count:数字を覚える場所につけた名前。好きに決められる
  • =:右側の値を、左側の名前へ入れる
  • 0:最初に覚えておく数字
2同じ言葉を、1か所で変える変数のconst
同じ言葉をまとめるのも「変数」

nameの中身を1回変えるだけで、使っている3か所が全部変わったね。"ひよこ"のような文字はダブルクォートではさむよ。あとから中身を変えない値にはconstを使う。

3数字によって、言葉を変えるifelse
ifは「もし」、elseは「それ以外」

上から順番に条件を確かめて、当てはまった場所の命令だけを動かすよ。>= 30は「30以上」という意味。

4同じことを5回書いてみるくり返す前の大変さ
同じ行が増えると、書きかえる場所も増えちゃう

5回なら書けても、100回では大変だね。変え忘れを減らすためにも、次のfor文で1つにまとめるよ。

5くり返しを1つにまとめるfor
回数と、くり返す命令を分けて書けたね

forは、囲まれた命令を何度も動かす書き方だよ。今は細かな記号を暗記しなくてOK。countの数字で回数を変えられる、とわかれば十分!

for (...)の中を1つずつ見る
  • let i = 0:数えるための数字を0から始める
  • i < count:数えた数字がcountより小さい間は続ける
  • i++:1回終わるたび、数えた数字を1つ増やす
6命令のまとまりに名前をつける関数
greetが、命令のまとまりにつけた名前

ボタンが押されたら、ブラウザがgreetの中にまとめた命令を動かすよ。

やりたい動きから、JSの言葉を探す
JSの言葉何をするときに使う?
letあとで変わる値に名前をつける
constあとで変えない値に名前をつける
if条件によって命令を分ける
for同じ命令をくり返す
function命令のまとまりに名前をつける
🐣 つぎの練習:値をまとめて、画面を動かそう変数と関数を復習してから、配列と画面の書き換えへ進むよ

⚡ JavaScriptってなに?

JavaScriptは、Webページに命令を出すためのプログラミング言語。「このボタンが押されたら、この文字を変える」「この数を計算する」といった指示を書いていくよ。ブラウザの画面右下にある小窓「コンソール」に出力しながら動作を確認できるのも特徴。このサイトの体験コーナーでは、コンソールへの出力を下のダーク背景の欄にそのまま表示するようにしているよ。

変数

値に名前をつけて、あとで使い回せるようにする箱。letconstの2つを使うよ。

  • const … あとから中身を変えない変数(基本はこっちを使う)
  • let … あとから中身が変わる可能性がある変数

` `(バッククォート)で囲むと、${ }の中に変数の値をそのまま埋め込める(テンプレートリテラル)。

const name = "ひよこ";

ことばには" "をつけるよ。

中身:ひよこ
const count = 3;

数字はそのまま書けるよ。

中身:3
const isHappy = true;

trueは「はい」のような値だよ。

中身:はい
関数

よく使う処理をひとまとめにして、名前をつけておけるもの。呼び出すだけで何度でも使い回せる。

条件分岐

if / elseを使うと、「もし〇〇だったら」で処理を分けられる。

くり返し処理(ループ)

「同じ処理を何度も実行する」ためのしくみ。for文がいちばんの定番だよ。

for (let i = 0; i < 5; i++) {
  console.log(i);
}
// 0, 1, 2, 3, 4 の順に出力される
  • let i = 0 … 最初に1回だけ実行。カウント用の変数を用意する
  • i < 5 … これがtrueの間、くり返し続ける(条件分岐と同じ書き方)
  • i++ … 1周するたびに実行。iを1増やす

似たものにwhile文もあるよ。「くり返す回数が決まっていない」ときに使うことが多い。

let count = 0;
while (count < 3) {
  console.log("がんばれ!");
  count++;
}
配列とオブジェクト

配列は「順番に並んだリスト」、オブジェクトは「名前つきのデータのまとまり」だよ。

fruits.forEach(...)のように、配列のうしろに.をつけて呼び出すものを「配列のメソッド」と呼ぶよ。forEachは「配列の中身をひとつずつ取り出して処理する」メソッドで、実はfor文と同じ「くり返し処理」の仲間。配列を順番に処理したいときは、for文よりもforEachを使うことが多いよ。ほかにも便利な配列メソッドがたくさんあるので、モダンJS×TSのページでもう少し紹介するよ。
DOM操作とイベント

「DOM」は、HTMLの内容をJSから触れるようにしたデータの形。document.querySelector()で要素をつかまえて、中身や見た目を書きかえられるよ。

  • document.querySelector("#id") … CSSと同じ書き方で要素をひとつ取得
  • 要素.textContent = "..." … 要素の中の文字を書きかえる
  • 要素.style.color = "..." … 要素の見た目をJSから直接変える
  • 要素.addEventListener("click", 関数) … クリックされたときに関数を実行する
() => { ... }のかたちは「アロー関数」と呼ばれる、関数の書き方のひとつ。addEventListenerのように「あとで実行してほしい処理」を渡すときによく使うよ。

動いた!⚡🐤

JSのきほんはOK。次は、ここまで学んだHTML・CSS・JSを自由に組み合わせて練習できるプレイグラウンドに行ってみよう。

プレイグラウンドへ →