【JS第3回】演算子とデータの計算・比較
プログラムに計算をさせ、状態を判定させるための「演算子」をマスターします。算術計算から、厳密な比較(===)、および複数条件をまとめる論理演算子の使い方を学習しましょう。
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. データの判定処理を書いてみよう
以下のコードは、ユーザーの「年齢」と「会員フラグ」の情報を比較演算子と論理演算子で判定する実践的な例です。
const age = 20; const isMember = true; /* 比較演算子:20歳以上か? */ const isAdult = age >= 20; /* true */ /* 論理演算子:20歳以上、かつ、会員登録済みか? */ const isEligible = isAdult && isMember; console.log(`サービス利用可否: ${isEligible}`); /* true */
JavaScriptにおいて、値の比較を行う際、値そのものだけでなく「データ型」まで完全に一致しているかを判定する、最も推奨される厳密な比較演算子の記号は何でしょうか?
※この問題の解答と解説は、ページ最下部(まとめの前)に掲載しています。
5. まとめと次回予告
第3回の講義はお疲れ様でした!今回の重要ポイントを振り返りましょう。
- 算術演算子は掛け算に `*`、割り算に `/`、余り計算に `%` を使用する。
- 比較時には暗黙の型変換によるバグを防ぐため、必ず `===`(厳密等価)を使用する。
- `&&` (かつ) と `||` (または) を使うことで、複数の条件判定を1つの式に結合できる。
次回(第4回)は、プログラムの意思決定の中枢である「条件分岐:if文とswitch文」を学び、条件に応じて実行するコードを切り替える基本処理をマスターします。お楽しみに!
📖 JavaScriptの基礎を全10回でマスターする
🔑 第3回 理解度チェックの解答と解説
【解説】
正解は **`===`** (イコール3つ)です。 イコール2つの `==` を使った場合、データの型が異なっていても中身を自動変換して比較してしまいます。例えば、数値の `0` と 空文字 `””` を `==` で比較すると `true` になるためバグの温床になります。これを防ぎ、データ型まで完全に一致しているかを判定する `===` を記述するのが現在の開発基準です。
