【第5回】HTML解説 JavaScript入門ガイド | 初心者でも分かる基礎と実践
目次
- JavaScriptとは?3つの言語の役割
- 最初の一歩:ボタンクリックで動かす
- DOM操作:ページを動的に変更
- フォームバリデーション:入力チェック
- リアルタイム更新:文字数カウンター
- 実践:シンプルな電卓アプリ
- デバッグとエラー対処法
- まとめと次のステップ
JavaScriptとは?Web開発で必須の3つの言語
JavaScript(ジャバスクリプト)は、1995年にNetscape社のブレンダン・アイクによってわずか10日ほどで開発された、Webページに動きや反応をつけるためのプログラミング言語で、ボタンを押したときの動作やアニメーション、ゲームのキャラクターの動き、入力チェックなどを簡単に作ることができ、現在ではほとんどすべてのブラウザで使われているだけでなく、Node.jsなどを使えばサーバーやアプリの開発にも応用できる、非常に汎用性の高い言語です。
現代のWebサイトを作るには、HTML、CSS、JavaScriptの3つが必要です。それぞれの役割を理解しましょう。
Web開発の3本柱
| 言語 | 役割 | 例え |
|---|---|---|
| HTML | 構造・骨組み | 家の柱や壁 |
| CSS | 見た目・デザイン | 壁紙やインテリア |
| JavaScript | 動き・機能 | 自動ドアや照明スイッチ |
JavaScriptでできること
- ✅ ボタンクリックで画面を変更
- ✅ フォーム入力のリアルタイムチェック
- ✅ 画像スライドショー
- ✅ 文字数カウンター(Twitter風)
- ✅ 動的なコンテンツの追加・削除
- ✅ アニメーション効果
最初の一歩:ボタンをクリックして動かそう
JavaScriptの基本は「○○が起きたら、△△をする」という考え方です。まずは一番シンプルな例から始めましょう。
実装例:クリックでメッセージ表示
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript基礎</title>
<style>
#message {
margin-top: 20px;
padding: 15px;
background-color: #e8f5e9;
border-left: 4px solid #4caf50;
display: none;
}
</style>
</head>
<body>
<button id="myButton">クリックしてね</button>
<div id="message">ボタンがクリックされました!</div>
<script>
document.getElementById('myButton').addEventListener('click', function() {
document.getElementById('message').style.display = 'block';
});
</script>
</body>
</html>
コードの3ステップ解説
- 要素を取得:
getElementById('myButton')でボタンを見つける - イベント設定:
addEventListener('click', ...)でクリックを監視 - 処理実行: メッセージを表示する
DOM操作:ページを動的に変更しよう
**DOM(Document Object Model)**は、JavaScriptがHTMLを操作するための仕組みです。
DOM操作の基本メソッド
| メソッド | 機能 | 使用例 |
|---|---|---|
getElementById() | IDで要素取得 | document.getElementById('box') |
createElement() | 新規要素作成 | document.createElement('p') |
appendChild() | 子要素として追加 | parent.appendChild(child) |
textContent | テキスト変更 | element.textContent = 'Hello' |
実装例:動的にコンテンツを追加
<div id="content"></div>
<button id="addBtn">追加</button>
<script>
var count = 0;
document.getElementById('addBtn').addEventListener('click', function() {
count++;
var newItem = document.createElement('p');
newItem.textContent = count + '番目のアイテム';
document.getElementById('content').appendChild(newItem);
});
</script>
動作の流れ:
- ボタンをクリック
- カウントが1増える
- 新しい段落(
<p>)を作成 - テキストを設定
- ページに追加
フォームバリデーション:入力内容をチェック
フォームのバリデーション(検証)は、ユーザーエクスペリエンス向上に不可欠です。
バリデーションの重要性
- ✅ 入力ミスの防止
- ✅ セキュリティ強化
- ✅ データ品質の向上
- ✅ ユーザビリティ改善
実装例:メールアドレスの検証
<form id="myForm">
<input type="email" id="email" placeholder="メールアドレス">
<div id="error" style="color: red;"></div>
<button type="submit">送信</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function(e) {
var email = document.getElementById('email').value;
var errorDiv = document.getElementById('error');
// メール形式チェック
var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailPattern.test(email)) {
e.preventDefault(); // 送信を停止
errorDiv.textContent = '正しいメールアドレスを入力してください';
} else {
errorDiv.textContent = '';
}
});
</script>
リアルタイム更新:文字数カウンター
入力と同時に結果を表示する機能は、現代のWebサイトに不可欠です。
実装例:Twitter風文字数カウンター
<textarea id="textArea" placeholder="文章を入力..." maxlength="140"></textarea>
<div id="counter">0 / 140文字</div>
<script>
var textArea = document.getElementById('textArea');
var counter = document.getElementById('counter');
textArea.addEventListener('input', function() {
var length = this.value.length;
counter.textContent = length + ' / 140文字';
// 色の変更
if (length > 120) {
counter.style.color = 'red';
} else if (length > 100) {
counter.style.color = 'orange';
} else {
counter.style.color = 'black';
}
});
</script>
ポイント
inputイベント: 文字入力ごとに発火value.length: 現在の文字数を取得- 条件分岐で色を動的に変更
実践:シンプルな電卓アプリ {#calculator-app}
これまで学んだ技術を組み合わせて、実用的なアプリを作りましょう。
機能
- 四則演算(+、-、×、÷)
- クリア機能
- エラーハンドリング
コア部分のコード
var currentInput = '0';
var operator = null;
var previousValue = null;
function appendNumber(num) {
if (currentInput === '0') {
currentInput = num;
} else {
currentInput += num;
}
updateDisplay();
}
function calculate() {
var current = parseFloat(currentInput);
var result;
switch (operator) {
case '+': result = previousValue + current; break;
case '-': result = previousValue - current; break;
case '*': result = previousValue * current; break;
case '/':
if (current === 0) {
alert('0で割ることはできません');
return;
}
result = previousValue / current;
break;
}
currentInput = result.toString();
updateDisplay();
}
学べるポイント:
- 変数の状態管理
- switch文による条件分岐
- エラーハンドリング
デバッグとエラー対処法
プログラミングでエラーは日常茶飯事。重要なのは、適切に対処する方法を知ることです。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
TypeError | 存在しないプロパティへのアクセス | 要素が正しく取得できているか確認 |
ReferenceError | 未定義の変数を使用 | 変数名のスペルミス、定義順序を確認 |
SyntaxError | 文法エラー | 括弧、セミコロンの閉じ忘れチェック |
デバッグの基本テクニック
1. console.logで変数を確認
var userName = document.getElementById('name').value;
console.log('ユーザー名:', userName); // コンソールに出力
2. 開発者ツールを活用
開き方:
- Windows:
F12またはCtrl + Shift + I - Mac:
Command + Option + I
3. try-catchでエラーハンドリング
try {
var result = riskyFunction();
} catch (error) {
console.error('エラー:', error.message);
alert('処理中にエラーが発生しました');
}
ベストプラクティス:良いコードを書くコツ
覚えておきたい10のポイント
- 意味のある変数名をつける
// ❌ 悪い例 var x = document.getElementById('btn'); // ✅ 良い例 var submitButton = document.getElementById('submitBtn'); - グローバル変数を避ける
- コメントを適切に書く
- DOM操作を最小限にする
- エラーハンドリングを実装する
- 関数を小さく保つ
- 一貫性のあるコーディングスタイル
- セキュリティを考慮する
- モバイル対応を意識する
- コードレビューを習慣化する
まとめ:次のステップへ
この記事で学んだこと
| カテゴリ | 内容 | 実用例 |
|---|---|---|
| 基本操作 | イベント処理 | ボタンクリック |
| DOM操作 | 要素の追加・変更 | 動的コンテンツ |
| バリデーション | 入力チェック | フォーム検証 |
| リアルタイム更新 | 即座の反応 | 文字数カウント |
| デバッグ | エラー対処 | 開発者ツール |
初心者が押さえるべき3つのポイント
- JavaScriptは「○○が起きたら、△△する」が基本
- エラーは学びのチャンス
- まず動かしてみる、完璧を求めない
次に学ぶこと
初級レベル
- ✅ 条件分岐(if文、switch文)
- ✅ ループ処理(for、while)
- ✅ 配列とオブジェクト
- ✅ 関数の基礎
中級レベル
- 📚 ES6の新機能(アロー関数、テンプレートリテラル)
- 📚 Fetch APIでデータ取得
- 📚 LocalStorageでデータ保存
- 📚 非同期処理(Promise、async/await)
上級レベル
- 🚀 React、Vue.jsなどのフレームワーク
- 🚀 Node.jsでサーバーサイド開発
- 🚀 TypeScriptでの型安全な開発
おすすめの練習プロジェクト
- タイマーアプリ - 時間のカウント機能
- To-Doリスト - タスク管理機能
- じゃんけんゲーム - ランダム処理
- メモ帳アプリ - LocalStorage活用
- 天気予報アプリ - API連携
よくある質問(FAQ)
Q1: JavaScriptはどこに書けばいいの?
A: 主に3つの方法があります:
- HTMLファイル内の
<script>タグ内 - 外部ファイル(推奨):
<script src="script.js"></script> - HTML要素の属性内(非推奨):
<button onclick="...">
Q2: jQueryは学ぶべき?
A: 現代では必須ではありません。まず素のJavaScript(Vanilla JS)を学び、必要に応じてフレームワーク(React、Vue.js)に進むのがおすすめです。
Q3: 何から始めればいい?
A: この記事のコードを実際に打ち込んで動かしてみましょう。完全に理解できなくてもOK。手を動かすことが最重要です。
Q4: エラーが出て動かない時は?
A:
- ブラウザの開発者ツール(F12)でエラーメッセージを確認
- console.logで変数の中身をチェック
- コードのスペルミスや括弧の閉じ忘れを確認
Q5: どれくらいで使えるようになる?
A: 毎日15分の学習で、1〜2ヶ月で基本的な機能は実装できるようになります。継続が最も重要です。
学習リソース
公式ドキュメント
- MDN Web Docs - 最も信頼できるJavaScript資料
- JavaScript.info - 初心者向け詳細ガイド
練習サイト
- Progate - 日本語対応の学習プラットフォーム
- freeCodeCamp - 無料のプログラミング学習
コミュニティ
- Stack Overflow - 質問・回答サイト
- Qiita - 日本語の技術情報共有サービス
最後に
JavaScriptは、Webサイトに命を吹き込む魔法の言語です。最初は難しく感じるかもしれませんが、毎日少しずつコードを書くことで、必ず上達します。
重要なのは、完璧を目指さず、まず動かしてみること。
エラーが出ても大丈夫。それは成長のサインです。この記事があなたのJavaScript学習の第一歩になれば幸いです。
さあ、今すぐテキストエディタを開いて、コードを書き始めましょう!
Happy Coding! 🚀✨
この記事が役に立ったら、シェアしてください!

