JavaScriptの==
と===
の違いは何ですか? また、!=
や!==
という演算子も見たことがあります。 このような演算子は他にもありますか?
ここで見てみましょう。http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.htmlをご覧ください。
3つの等号は「型強制のない等号」を意味します。3つの等号を使うと、値の型も同じでなければなりません。
0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
===
と !==
は厳密な比較演算子です。
JavaScriptには、厳密な比較と型変換可能な等式比較があります。 型変換による等式比較を行います。 厳密な等式では、比較されるオブジェクトは同じ型でなければなりません。 比較されるオブジェクトは同じ型である必要があります。
- 2つの文字列は、文字の並びが同じで、長さが同じであり、かつ、 > 厳密に等しい。 文字の並びが同じで、長さが同じで、対応する位置に同じ 2つの文字列は、文字の並びが同じで、長さが同じで、対応する位置に同じ文字が
- 2つの数字が厳密に等しいのは、それらが数値的に等しい(同じ数値を持つ)場合です。 同じ数字の値を持っている)。)NaN "は次のようなものではありません。 NaN`も含めて、何かと同じではありません。 正と負のゼロは互いに等しい 互いに等しい。 2つのブール演算子は、両方が真であるか、または両方が偽である場合、 > 厳密に等しい。 両方が偽の場合、厳密に等しい。
- 2つのオブジェクトは、同じ
Object
を参照している場合、厳密には等しい。Null
とUndefined
型は==
です (ただし===
ではありません)。[つまり、(Null==Undefined
)はtrue
ですが、(Null===Undefined
)はfalse
です。]