JavaScript 入門 → 応用

初学者向け VS Code 対応 ブラウザで今すぐ動かして学べる実践コース

第1章 / 全8章
12%
CHAPTER 01

JavaScript の基礎準備 & VS Code 環境構築

JavaScriptはウェブブラウザで動く唯一のプログラミング言語です。
VS Code(Visual Studio Code)を使えば、本格的な開発環境が無料で使えます。
VS Code のセットアップ手順
📁 index.html — まず最初に作るファイル
<!-- index.html -->
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>JS練習</title>
</head>
<body>
  <h1>Hello JavaScript!</h1>

  <!-- JSはここに書く(bodyの閉じタグ直前が基本)-->
  <script>
    // これがJavaScriptです
    console.log("Hello, World!");
  </script>
</body>
</html>
VS Codeで「Live Server」拡張機能をインストールすると、ファイルを保存するたびにブラウザが自動更新されます。F12キー → Consoleタブでログが確認できます。
最初のコードを動かしてみよう
✏️ 編集して実行できます 自由に書き換えてみてください
出力(コンソール)
まだ実行されていません
JavaScriptでブラウザのコンソールに文字を表示するメソッドはどれ?
✅ 正解! console.log() はJSの基本出力メソッドです。VS CodeのターミナルやブラウザのF12コンソールで確認できます。
CHAPTER 02

変数とデータ型

変数はデータを入れる「箱」です。
現代のJSでは let(変更可)と const(定数)を使います。var は古いので使わないようにしましょう。
変数の宣言と型
// ===== 変数の宣言 =====
let name = "田中花子";    // 文字列 (String)
let age  = 25;           // 数値 (Number)
let isStudent = true;   // 真偽値 (Boolean)
let score = null;        // null(値なし)
let address;             // undefined(未定義)

// const は変更できない定数
const PI = 3.14159;

// ===== 型の確認 =====
console.log(typeof name);      // "string"
console.log(typeof age);       // "number"
console.log(typeof isStudent); // "boolean"

// ===== テンプレートリテラル(便利!)=====
console.log(`${name}さんは${age}歳です`);
✏️ 自分の名前や年齢に書き換えてみよう 編集 → 実行
出力
まだ実行されていません
後から値を変更できない変数の宣言キーワードはどれ?
✅ 正解! const は定数(constant)の略です。変更が必要なものは let、変わらないものは const を使うのがベストプラクティスです。
CHAPTER 03

条件分岐 (if / else / switch)

プログラムは条件によって異なる処理を実行できます。
比較演算子:===(厳密等値)、!==(不等)、><>=<=
if / else if / else
const score = 75;

// if文の基本
if (score >= 90) {
  console.log("優秀!A判定");
} else if (score >= 70) {
  console.log("合格!B判定");
} else if (score >= 50) {
  console.log("もう少し C判定");
} else {
  console.log("要復習 D判定");
}

// switch文(値が多い場合に便利)
const day = "水曜";
switch (day) {
  case "月曜":
  case "火曜":
    console.log("週の前半"); break;
  case "水曜":
    console.log("週の真ん中!"); break;
  default:
    console.log("週の後半");
}

// 三項演算子(コンパクトな if/else)
const result = score >= 60 ? "合格" : "不合格";
console.log(`判定: ${result}`);
✏️ score の値を変えて結果を確認しよう 0〜100 で試してみて
出力
まだ実行されていません
JSで「厳密に等しい」を比較する演算子はどれ?
✅ 正解! === は型変換しないので安全です。例:1 == “1” は true ですが 1 === “1” は false になります。
CHAPTER 04

繰り返し処理(ループ)

ループを使うと同じ処理を何度も自動的に実行できます。
配列の全要素を処理したいときに大活躍します。
for / while / for…of
// ===== for ループ(回数指定)=====
for (let i = 1; i <= 5; i++) {
  console.log(`${i}回目: こんにちは!`);
}

// ===== while ループ(条件が true の間)=====
let count = 0;
while (count < 3) {
  console.log(`カウント: ${count}`);
  count++;
}

// ===== for...of(配列の各要素に対して)=====
const fruits = ["りんご", "バナナ", "みかん"];
for (const fruit of fruits) {
  console.log(`🍎 ${fruit}`);
}

// ===== break / continue =====
for (let n = 1; n <= 10; n++) {
  if (n === 5) break;       // 5で終了
  if (n % 2 === 0) continue; // 偶数をスキップ
  console.log(`奇数: ${n}`);
}
✏️ 九九を出力してみよう 二重ループに挑戦!
出力
まだ実行されていません
ループを途中で抜け出すキーワードはどれ?
✅ 正解! break はループを完全に終了します。continue は現在の回だけスキップして次の繰り返しに進みます。
CHAPTER 05

関数 (function)

関数は処理をまとめて名前をつけたもの。何度でも再利用できます。
モダンJSではアロー関数(=>)がよく使われます。
関数宣言・関数式・アロー関数
// ① 関数宣言
function greet(name) {
  return `こんにちは、${name}さん!`;
}
console.log(greet("花子"));

// ② アロー関数(モダンな書き方)
const add = (a, b) => a + b;
console.log(add(3, 4));   // 7

// ③ デフォルト引数
const power = (base, exp = 2) => base ** exp;
console.log(power(3));    // 9 (3の2乗)
console.log(power(2, 10)); // 1024

// ④ 複数の値を返す(配列・オブジェクト)
const minMax = (arr) => ({
  min: Math.min(...arr),
  max: Math.max(...arr)
});
const { min, max } = minMax([3, 1, 7, 2, 9]);
console.log(`最小: ${min}, 最大: ${max}`);
✏️ BMI計算機を完成させよう 関数を定義して呼び出す練習
出力
まだ実行されていません
アロー関数の正しい書き方はどれ?
✅ 正解! アロー関数は (引数) => 処理 という形です。処理が一行なら {} と return を省略できます。
CHAPTER 06

配列とオブジェクト

配列は順番のあるリスト、オブジェクトはキーと値のペアの集まりです。
mapfilterreduce などの配列メソッドは必須知識です!
配列の操作・便利メソッド
// ===== 配列の基本 =====
const nums = [10, 20, 30, 40, 50];
console.log(nums[0]);        // 10(0始まり)
console.log(nums.length);   // 5

// ===== 高階関数(超重要!)=====
// map: 全要素を変換して新配列を作る
const doubled = nums.map(n => n * 2);
console.log(doubled);       // [20,40,60,80,100]

// filter: 条件に合う要素だけ抽出
const big = nums.filter(n => n > 25);
console.log(big);            // [30,40,50]

// reduce: 全要素を1つの値にまとめる
const total = nums.reduce((acc, n) => acc + n, 0);
console.log(`合計: ${total}`); // 150

// ===== オブジェクト =====
const user = {
  name: "太郎",
  age: 28,
  greet() { return `私は${this.name}です`; }
};
console.log(user.greet());

// 分割代入
const { name, age } = user;
console.log(`${name} (${age}歳)`);
✏️ 商品リストを操作しよう map / filter / reduce を使いこなそう
出力
まだ実行されていません
配列から条件に合う要素だけを取り出すメソッドは?
✅ 正解! filter() は条件に合う要素だけの新しい配列を返します。find() は最初に見つかった1要素だけを返す点が違います。
CHAPTER 07

DOM操作 — HTMLをJSで動かす

DOM(Document Object Model) を使うとJSからHTMLを読み書きできます。
ボタンのクリックや入力フォームなど、インタラクティブなWebページを作れます。
DOM操作のパターン集
// ===== 要素の取得 =====
const btn   = document.getElementById("myBtn");
const title = document.querySelector("h1");
const items = document.querySelectorAll(".item");

// ===== 内容の変更 =====
title.textContent = "新しいタイトル"; // テキスト変更
title.innerHTML   = "<span>HTML変更</span>";

// ===== スタイルの変更 =====
title.style.color      = "#ff6b6b";
title.style.fontSize   = "24px";

// ===== クラスの操作 =====
title.classList.add("active");
title.classList.remove("hidden");
title.classList.toggle("highlight");

// ===== イベントリスナー =====
btn.addEventListener("click", () => {
  alert("ボタンがクリックされました!");
});

// ===== 要素の追加 =====
const li = document.createElement("li");
li.textContent = "新しいアイテム";
document.querySelector("ul").appendChild(li);
VS Code でHTMLファイルを開きF5 (Live Server) で起動後、F12のコンソールで getElementById などを試せます。
インタラクティブ デモ(今すぐ動かせます)
← ボタンを押してDOMを変えてみよう
  • 最初のアイテム
HTMLの id=”box” の要素をJSで取得する正しい方法は?
✅ 正解! getElementById(“box”) と querySelector(“#box”) はどちらも正しいですが、getElementById は id専用で高速です。querySelector は CSS セレクタ形式で柔軟に使えます。
CHAPTER 08

非同期処理・ES6+応用

非同期処理はWebAPIからデータを取得するときに必須の知識です。
Promiseasync/await の流れで理解しましょう。
Promise / async・await / fetch
// ===== Promise の基本 =====
const wait = (ms) =>
  new Promise(resolve => setTimeout(resolve, ms));

// ===== async/await(Promiseをシンプルに書く)=====
async function loadData() {
  console.log("データ読み込み開始...");
  await wait(1000);            // 1秒待つ
  console.log("完了!");
  return { status: "ok" };
}
loadData().then(data =>
  console.log("結果:", data));

// ===== fetch で Web API からデータ取得 =====
async function getUser(id) {
  try {
    const res = await fetch(
      `https://jsonplaceholder.typicode.com/users/${id}`
    );
    const user = await res.json();
    console.log(`名前: ${user.name}`);
    console.log(`メール: ${user.email}`);
  } catch (err) {
    console.error("エラー:", err);
  }
}
getUser(1);

// ===== モダンJS構文まとめ =====
// スプレッド演算子
const a = [1,2,3]; const b = [4,5];
console.log([...a, ...b]);  // [1,2,3,4,5]

// Optional chaining (?.)  Nullish coalescing (??)  
const obj = { user: { name: "太郎" } };
console.log(obj?.user?.name);   // "太郎"
console.log(obj?.admin?.role ?? "一般ユーザー");
✏️ 実際のAPIからデータを取得してみよう 非同期処理を体験
出力
まだ実行されていません
async 関数の中で Promise の完了を待つキーワードは?
✅ 正解! await は async 関数の中でのみ使えます。Promiseの結果が返るまで処理を一時停止し、コードを同期的に読める形で書けます。

🎉 コース完了!次のステップ
おめでとうございます! JavaScriptの基礎から非同期まで学びました。
次は:① React / Vue などのフレームワーク ② Node.js でサーバーサイド ③ TypeScript で型安全な開発 へ進みましょう!