JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの比較演算子を徹底解説!基本の使い方と==と===の違い

JavaScriptの比較演算子の基本をわかりやすく解説します。

JavaScriptにおいて、比較演算子は、値(数値や文字列)や変数同士の等価性差異を調べるために使われます。比較演算子はオペランド(被演算子)を比較し、その結果が真(true)か偽(false)かに応じてブール値(boolean)を返します。

オペランド: 難しく考える必要はありません。オペランドとは、比較演算子の左右にある値のことです。例えば 2 < 4 の場合、24 がオペランドで、< が「より小さい」ことを判定する演算子です。

ブール値(Boolean) とは、true(真)false(偽) のどちらか一方を表す値のことです。

比較演算子の一覧と説明

  • >: より大きい
  • <: より小さい
  • >=: 以上
  • <=: 以下
  • !=: 等しくない
  • !==: 値または型が等しくない(厳密な不等価)
  • ==: 値が等しい(型は問わない)
  • ===: 値と型が両方とも等しい(厳密な等価チェック)

比較演算子の使い方

「より小さい」演算子を使ったシンプルな比較の例を見てみましょう。

console.log(2 < 4)
// true

次に、厳密な等価チェックの例です。

console.log(2 === "2")
// false

この結果が false になるのは、トリプルイコール === 演算子がデータ型も含めて厳密に値を比較するためです。数値の 2 と文字列型の "2" を比較しているため、型が異なる時点で false が返されます。

同じ比較を、今度は等価演算子(ダブルイコール)== で行ってみましょう。

console.log(2 == "2")
// true

今度は true が返されました。ダブルイコール演算子は値だけを比較し、データ型までは確認しないためです。

比較演算子は、if文などの条件分岐でも非常によく使われます。

const alcoholDrinkingAge = 21
const inputAge = 17

if (inputAge < alcoholDrinkingAge) {
  console.log("申し訳ありませんが、飲酒できる年齢ではありません")
}

比較演算子はプログラミングの中でも最もシンプルでありながら、最も重要なトピックの一つです。あらゆる場面で日常的に使うことになるため、確実に理解しておきましょう。

JavaScriptで特に注意すべきポイントは、等価演算子(==)厳密等価演算子(===) を混同しないことです。この違いを誤ると、意図しない動作や厄介なバグにつながる可能性があります。

経験則として、常に厳密なトリプルイコール === を使用し、== は避けるのが安全です。これにより、型変換による予期せぬ挙動を防ぐことができます。

  1. 【JavaScript入門】Rest演算子とSpread演算子の違いと使い方を徹底解説

    Rest演算子(...)を使用すると、関数を任意の数の引数で呼び出し、余分な引数を1つの配列として受け取ることができます。また、配列やオブジェクトの分割代入(デストラクチャリング)の際にも活用できる便利な構文です。 一方、Spread演算子(...)は、配列などの反復可能なオブジェクト(イテラブル)を個々の要素へと展開するために使用します。 Rest演算子とSpread演算子の主な違い 両者は同じ「...」という記法ですが、使用する場所によって役割が異なります。 Rest演算子: 関数の仮引数や分割代入の左辺など、「複数の値をまとめて1つに集約」する場面で使用します。 Spread演算子:

  2. JavaScriptのObject.is()メソッドによる等価比較の使い方を徹底解説

    ES6(ECMAScript 2015)で導入されたObject.is()メソッドは、2つの値を比較するための手法です。比較対象はプリミティブ値でもオブジェクトでも構いません。従来の等価演算子である==(抽象的等価)や===(厳密等価)と比べて、より正確で直感的な比較ができるのが特徴です。特に、NaN同士の比較や+0と-0の区別など、===では扱いにくかったケースを適切に処理できます。Object.is()の主な特徴NaN === NaN は false になりますが、Object.is(NaN, NaN) は true を返します+0 === -0 は true になりますが、Object.