Menu
Coddy logo textTech

厳密な比較と緩い比較

CoddyのJavaScriptジャーニー「基礎」セクションの一部 — レッスン 16/77。

JavaScriptには、2種類の等価演算子があります:等価演算子 (==) と 厳密等価演算子 (===) です。

ゆるい比較 (==) は、型変換(型強制)を行った後に、2つの値が等しいかどうかをチェックします。これは、オペランドの型が異なる場合、JavaScriptが比較を行う前にそれらを共通の型に変換しようとすることを意味します。

例えば:

let b = 5 == "5";   // 比較の前に文字列の "5" が数値の 5 に変換されるため、true を保持します
let b = 0 == false; // 比較の前に真偽値の false が数値の 0 に変換されるため、true を保持します
let c = "" == false; // 比較の前に空文字列が数値の 0 に変換されるため、true を保持します

一方、厳密等価演算子 (===) は、型変換を行わずに2つの値が等しいかどうかをチェックします。オペランドの型が異なる場合、それらは等しくないとみなされます。

例えば:

let b = 5 === "5";   // 型変換が行われず、数値は文字列と等しくないため、falseを保持します
let b = 0 === false; // 型変換が行われず、数値の0は真偽値のfalseと等しくないため、falseを保持します

一般的に、型変換による予期しない結果を避けるために、ほとんどの場合で厳密等価演算子(===)を使用することが推奨されます。

同様に、同じように動作しますが、等価性ではなく不等価性をチェックするゆるい不等価 (!=) 演算子と厳密な不等価 (!==) 演算子もあります。

ゆるい不等価 (!=) は、型変換(型強制)を行った後に2つの値が等しくないかどうかをチェックしますが、厳密不等価 (!==) は、型変換を行わずに2つの値が等しくないかどうかをチェックします。

challenge icon

チャレンジ

初心者

3つの変数 ab、および c を含むコードが与えられています。

あなたのタスクは、以下の比較を行い、その結果を格納することです:

  1. ab と等価(loosely equal)であるかを確認し、その結果を d に格納します。
  2. ac と厳密に等しい(strictly equal)かを確認し、その結果を e に格納します。
  3. bc と等価ではない(loosely not equal)かを確認し、その結果を f に格納します。
  4. ab と厳密に等しくない(strictly not equal)かを確認し、その結果を g に格納します。

与えられた変数と比較演算子を使用して、タスクを完了させてください。

自分で試してみよう

// 与えられた変数
let a = 10
let b = "10"
let c = true

// 以下にコードを入力してください


// 以下の行は変更しないでください
console.log(`d = ${d}`)
console.log(`e = ${e}`)
console.log(`f = ${f}`)
console.log(`g = ${g}`)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン