【JS第3回】演算子とデータの計算・比較

JavaScript基礎講座 全10回(第3回)

【JS第3回】演算子とデータの計算・比較

プログラムに計算をさせ、状態を判定させるための「演算子」をマスターします。算術計算から、厳密な比較(===)、および複数条件をまとめる論理演算子の使い方を学習しましょう。

📌 JavaScript講座ロードマップ一覧(クリックで移動)

1. 基本的な計算(算術演算子)

数値を計算するための記号を 算術演算子(Arithmetic operators) と呼びます。

  • 足し算 ( + ) : 例: 5 + 3 ➔ `8`
  • 引き算 ( – ) : 例: 10 - 4 ➔ `6`
  • 掛け算 ( * ) : アスタリスク記号を使います。例: 4 * 3 ➔ `12`
  • 割り算 ( / ) : スラッシュ記号を使います。例: 15 / 3 ➔ `5`
  • 余り計算 ( % ) : 割った余り(剰余)を出します。偶数・奇数の判定等によく用いられます。例: 7 % 3 ➔ `1`

2. 値を比べる比較演算子(等価と厳密等価)

2つの値を比較し、結果を真偽値(`true` または `false`)で返すための記号です。

⚠️ 最重要:等価(==)と厳密等価(===)の違い

等価演算子 ( == ) : 値が等しいかのみを判定します。ブラウザが自動的に型変換を行うため、数値の 5 と文字列の "5" を比較した場合に `true` になってしまい、バグを招きます。
厳密等価演算子 ( === ) : 値だけでなく**「データ型も一致しているか」**を厳密に判定します。数値の `5 === “5”` はデータ型が違うため正しく `false` になります。

➔ 実務では、特別な理由がない限り必ず「===」および不一致の「!==」を使用します。

3. 複数条件を組み合わせる論理演算子

「〇〇かつ✕✕」や「〇〇または✕✕」といった、複雑な条件式を作るための演算子です。

  • 論理積 ( && ) : 「かつ(AND)」。左右の条件式が**どちらも true** の時だけ true を返します。
  • 論理和 ( || ) : 「または(OR)」。左右の条件式の**どちらか一方でも true** であれば true を返します。
  • 論理否定 ( ! ) : 「〜ではない(NOT)」。真偽値を反転させます。例: `!true` ➔ `false`。

4. データの判定処理を書いてみよう

以下のコードは、ユーザーの「年齢」と「会員フラグ」の情報を比較演算子と論理演算子で判定する実践的な例です。

script.js
const age = 20;
const isMember = true;

/* 比較演算子:20歳以上か? */
const isAdult = age >= 20; /* true */

/* 論理演算子:20歳以上、かつ、会員登録済みか? */
const isEligible = isAdult && isMember;

console.log(`サービス利用可否: ${isEligible}`); /* true */
✍️ 第3回 理解度チェック(問題)

JavaScriptにおいて、値の比較を行う際、値そのものだけでなく「データ型」まで完全に一致しているかを判定する、最も推奨される厳密な比較演算子の記号は何でしょうか?

※この問題の解答と解説は、ページ最下部(まとめの前)に掲載しています。

5. まとめと次回予告

第3回の講義はお疲れ様でした!今回の重要ポイントを振り返りましょう。

  • 算術演算子は掛け算に `*`、割り算に `/`、余り計算に `%` を使用する。
  • 比較時には暗黙の型変換によるバグを防ぐため、必ず `===`(厳密等価)を使用する。
  • `&&` (かつ) と `||` (または) を使うことで、複数の条件判定を1つの式に結合できる。

次回(第4回)は、プログラムの意思決定の中枢である「条件分岐:if文とswitch文」を学び、条件に応じて実行するコードを切り替える基本処理をマスターします。お楽しみに!

🔑 第3回 理解度チェックの解答と解説

【解説】

正解は **`===`** (イコール3つ)です。 イコール2つの `==` を使った場合、データの型が異なっていても中身を自動変換して比較してしまいます。例えば、数値の `0` と 空文字 `””` を `==` で比較すると `true` になるためバグの温床になります。これを防ぎ、データ型まで完全に一致しているかを判定する `===` を記述するのが現在の開発基準です。