厳密な比較と緩い比較
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つの値が等しくないかどうかをチェックします。
チャレンジ
初心者3つの変数 a、b、および c を含むコードが与えられています。
あなたのタスクは、以下の比較を行い、その結果を格納することです:
aがbと等価(loosely equal)であるかを確認し、その結果をdに格納します。aがcと厳密に等しい(strictly equal)かを確認し、その結果をeに格納します。bがcと等価ではない(loosely not equal)かを確認し、その結果をfに格納します。aがbと厳密に等しくない(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}`)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。