JavaScript のきほん:ページに動きをつける
変数・関数・条件分岐・繰り返しといったプログラミングの土台と、ボタンを押したら画面が変わる「DOM 操作」を、動くサンプルつきで学びます。
更新日:2026-09-25
この記事で分かること
- プログラミングの土台になる考え方(変数・関数・条件分岐・繰り返し)
- JavaScript を HTML に組み込む方法
- 「ボタンを押したら画面が変わる」を作る方法(DOM 操作)
- エラーの見つけ方(開発者ツールの使い方)
この記事は、どの言語を学ぶ人にも共通する「プログラミングの考え方」を JavaScript で身につける回です。所要時間の目安は 120 分。2回に分けても構いません。
JavaScript とは
JavaScript は、ブラウザの中で動くプログラミング言語 です。HTML が構造、CSS が見た目だとすれば、JavaScript は「動き」を担当します。
- ボタンを押したらメッセージを表示する
- 入力した内容をチェックする
- 画像を切り替える、メニューを開閉する
ほぼすべての Web サイトで使われていて、サーバー側(Node.js)でも使えるため、最初に学ぶ言語として最も実用的です。
準備:HTML から読み込む
index.html と同じフォルダに script.js を作り、body の いちばん最後(</body> の直前)で読み込みます。
<body>
<h1 id="title">こんにちは</h1>
<button id="btn">押してね</button>
<script src="script.js"></script>
</body>
script.js に次の1行を書いて保存し、ブラウザを更新してください。
console.log('動いています');
画面には何も出ませんが、F12 で開発者ツールを開き「Console」タブを見ると「動いています」と表示されています。この Console が、これからの学習で一番使う場所です。
変数:値に名前をつける
let name = '太郎'; // 文字列(文字はクォートで囲む)
let age = 20; // 数値
let isStudent = true; // 真偽値(true か false)
console.log(name + 'さんは' + age + '歳です');
let で変数を作ります。あとから値を変えないものは const を使います(実務では const が基本です)。
const taxRate = 0.1;
let price = 1000;
price = price * (1 + taxRate); // 1100
文字列をつなげるときは + でもよいですが、次の書き方(テンプレート文字列)のほうが読みやすくておすすめです。
console.log(`${name}さんは${age}歳です`);
関数:処理に名前をつける
同じ処理を何度も書かずに済むように、処理のかたまりに名前をつけたものが関数です。
function greet(person) {
return `こんにちは、${person}さん`;
}
console.log(greet('太郎')); // こんにちは、太郎さん
console.log(greet('花子')); // こんにちは、花子さん
function 名前(引数) { ... }で定義returnで結果を返す名前(値)で呼び出す
最近は次の書き方(アロー関数)もよく使います。意味は同じです。
const greet = (person) => `こんにちは、${person}さん`;
条件分岐:if
const score = 75;
if (score >= 80) {
console.log('よくできました');
} else if (score >= 60) {
console.log('合格です');
} else {
console.log('もう少しがんばりましょう');
}
比較には >=(以上)、<=(以下)、===(等しい)、!==(等しくない)を使います。=== は = が3つです。2つ(==)でも動きますが、思わぬ挙動をするので3つで統一してください。
繰り返し:for
for (let i = 1; i <= 5; i++) {
console.log(`${i}回目`);
}
配列(値のリスト)を順番に処理するなら、次の書き方が読みやすいです。
const fruits = ['りんご', 'みかん', 'ぶどう'];
for (const fruit of fruits) {
console.log(fruit);
}
配列とオブジェクト
複数の値をまとめて扱うための入れ物です。
// 配列:順番のあるリスト
const scores = [80, 65, 92];
console.log(scores[0]); // 80(番号は 0 から始まります)
console.log(scores.length); // 3
// オブジェクト:名前つきの値のまとまり
const user = { name: '太郎', age: 20 };
console.log(user.name); // 太郎
実際のデータは、ほとんどが「オブジェクトの配列」の形をしています。
const users = [
{ name: '太郎', age: 20 },
{ name: '花子', age: 25 },
];
for (const u of users) {
console.log(`${u.name}(${u.age}歳)`);
}
DOM 操作:画面を変える
ここからが JavaScript の本領です。HTML の要素を JavaScript から取得して、書き換えます。
const title = document.getElementById('title'); // id="title" の要素を取得
const btn = document.getElementById('btn');
btn.addEventListener('click', () => { // ボタンが押されたら
title.textContent = '押されました!'; // 見出しの文字を変える
title.style.color = 'red'; // 色を変える
});
document.getElementById('id名')で要素を取得addEventListener('click', 関数)で「クリックされたときの処理」を登録textContentで文字、style.○○で見た目を変更
入力欄の値を使う
<input id="nameInput" type="text" placeholder="名前">
<button id="helloBtn">あいさつ</button>
<p id="message"></p>
document.getElementById('helloBtn').addEventListener('click', () => {
const name = document.getElementById('nameInput').value;
if (name === '') {
document.getElementById('message').textContent = '名前を入力してください';
} else {
document.getElementById('message').textContent = `こんにちは、${name}さん!`;
}
});
変数・条件分岐・DOM 操作が1つにつながりました。ここまでできれば、簡単なフォームのチェックや計算ツールが作れます。
やってみよう
- カウンター:ボタンを押すたびに数字が1ずつ増えるページを作る。10 になったら「10回達成!」と表示する。
- 税込計算:金額を入力して押すと、税込価格(10%)を表示する。
- リスト表示:配列に入れた好きな映画3つを、
forを使ってulの中にliとして並べる(ヒント:document.createElement('li')とappendChild)。
3つ目はやや難しいので、AI に「ヒントだけ」をもらいながら進めるのもよい練習です。
つまずきやすいところ
- 何も起きない → Console に赤いエラーが出ていないか確認。
Uncaught TypeError: Cannot read properties of nullは「その id の要素が見つからない」という意味で、id のつづり違いか、scriptをheadに置いている(要素が作られる前に実行している)のが原因です。 =と===の違い →=は代入、===は比較。if (a = 1)は間違いです。- 文字列と数値 → 入力欄の
valueは常に文字列です。計算するならNumber(value)で数値に変えます。
まとめ
- 変数(let / const)、関数、if、for、配列とオブジェクトがプログラミングの土台。
document.getElementByIdとaddEventListenerで画面を動かせる。- エラーは Console を見る。赤い文字は敵ではなく、ヒント。
次は「Claude Code をはじめる」で、ここまで学んだ内容を AI と一緒に作る方法に進みます。