JavaScript」「JS」「ボタンを押したら反応する」「動きをつける」… Webサイトを触ったり、開発の話を聞いたりするとよく出てくる言葉。

あちこちで聞く JavaScript
図1:あちこちで聞く「JavaScript」

HTMLの記事 では骨組みCSSの記事 では見た目(服)を見てきました。 最後の1ピース——JavaScript を、ふんわり見ていきます。

JavaScript ってなに?

ざっくり言うと、JavaScript は Webページに「動き」と「反応」をつける言葉 です。

JavaScript=Webページの動きと反応
図2:JavaScript=Webページの「動き」と「反応」

人の体に例えると、JavaScript は 動きや反応 にあたります。 HTML(骨)に CSS(服)を着せただけだと、まだマネキンみたいに止まったまま。JavaScript が加わって初めて、触ったら反応する自分から動く——「生きている感じ」になる。

ちょっと雑学:JS の名前の由来

  • JavaScript は Java とは別物。1995年、Netscape の Brendan Eich が たった10日でプロトタイプを書き上げたのがはじまり(実用化までは更に磨き続けた)
  • 当時ブームだった「Java」の名前を借りて「JavaScript」と命名(マーケ目的)
  • Java と JavaScript の関係は、ハム と ハムスター くらい違う」とよく言われます🐹

クリックしたら反応する、が基本

JavaScript の一番わかりやすい例は、ボタンを押すと何かが起きる動き。

ボタンを押すと反応する
図3:「押されたら何かする」が JS の基本

たとえばこんな書き方をします:

<button onclick="alert('やあ')">押してね</button>

このボタンをクリックすると、「やあ」というポップアップが表示されます。

  • <button> …… HTML のボタンタグ
  • onclick="..." …… 「クリックされたら、ここに書いた JS を実行してね」という印
  • alert('やあ') …… 「『やあ』ってアラートを出して」という JS の命令

→ つまり JavaScript は「〇〇されたら△△する」を書くための言葉。触れる → 反応する という流れが基本です。

なんで JavaScript が必要?

HTML と CSS だけだと、ページは動かない・反応しないままです。

JSなし vs あり
図4:JSなし=マネキン/あり=触ると反応する生き物

HTML(骨)と CSS(服)だけのページは「綺麗に飾られたショーウィンドウ」。見るぶんには素敵だけど、ボタンを押しても何も起きないし、何かを入力しても判断してくれない。 JavaScript を加えることで:

  • ボタンを押すと メニューが開く
  • フォームに入力すると その場で「メアド形式違うよ」と教えてくれる
  • スクロールすると 要素がふわっと現れる
  • 「いいね」ボタンを押すと すぐ数字が増える

→ つまり「Webサイトに反応や動きが生まれる」のは、ぜんぶ JavaScript のおかげ。

こんな場面で活躍してる

普段使っているサイトで、こんな動きはだいたい JavaScript の仕事です。

JSが活躍する場面
図5:身近なところで JS は大活躍
  • メニュー・ハンバーガーボタン → 押すと開く・閉じる
  • 入力チェック → メールアドレスやパスワードの形式チェック
  • スクロール演出 → ふわっと現れる、固定されたヘッダー
  • SNS の「いいね」「リプライ」 → リロードなしで数字や表示が変わる
  • 地図のドラッグ・ズーム → Google マップとかの操作感
  • チャット画面 → ChatGPT のあの「文字が流れて出てくる」のも JS

ユーザーの動きに反応するもの」「ページがリロードなしで変わるもの」は、まず JS だと思って OK。

実はブラウザの外でも動く

ここまでは「ブラウザの中で動く JavaScript」の話。実は JavaScript は、ブラウザ以外の場所でも動かせるんです。

JSはブラウザの外でも動く
図6:JS はブラウザの外でも幅広く活躍
  • サーバー側で動く(Node.js)→ Web サービスの裏側も JS で書ける
  • デスクトップアプリ(Electron)→ VS Code や Slack も中身は JS
  • スマホアプリ(React Native)→ アプリも JS で作れる

…と、いま世界で最も使われている言語のひとつになっています。

ただし、これら全部を1記事で語ろうとすると 5分じゃ収まらないので、この記事では 「ブラウザの中で動くJS」 に絞って見ていきます。

HTML と CSS との関係

ここまでで Web 三部作が揃いました。

HTML + CSS + JavaScript
図7:HTML(骨)+ CSS(服)+ JavaScript(動きと反応)
  • HTML … 構造をつくる
  • CSS … 見た目をつくる
  • JavaScript動き・反応 … 触ると反応する/自分から動く

3つセットで、いま見ているWebサイトのほぼすべてが成り立っています。

まとめ

JavaScriptのすべて、これ1枚で
図8:JavaScript のすべて、これ1枚で

ふんわり理解チェック

  • JavaScript=Webページに「動き」と「反応」をつける言葉
  • 「クリックされたら〇〇する」「入力されたら△△する」が基本パターン
  • 名前は Java と似てるけど別物(ハムとハムスターの関係)
  • HTML(骨)+CSS(服)+JavaScript(動き)で1つのサイトになる

これで Web の3点セット——HTML(骨)・CSS(服)・JavaScript(動き)——が一通り揃いました。あなたが普段見ているサイトも、この3つの組み合わせでできています 🌱