[1] == [1] 出力された値の数が false になっています。理由を知っている人はいますか?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
比較演算子の間の等価演算子について詳しく紹介します:
等しい(==) 比較演算子は 2 つの異なるタイプのオペランドを変換し、厳密な比較を実行します。両方のオペランドがオブジェクトである場合、JavaScript はそれらの内部参照を比較し、それらの参照がメモリ内の同じオブジェクト (領域) を指している場合、つまりスタック メモリ内のそれらの参照アドレスが同じ場合に限り、等しいと判断します。
等しい(==)
比較演算子は 2 つの異なるタイプのオペランドを変換し、厳密な比較を実行します。両方のオペランドがオブジェクトである場合、JavaScript はそれらの内部参照を比較し、それらの参照がメモリ内の同じオブジェクト (領域) を指している場合、つまりスタック メモリ内のそれらの参照アドレスが同じ場合に限り、等しいと判断します。
上記の内容はすべて正しいです。[1] == [1] では、2 つの配列は異なるオブジェクトであるため、等しくありません。
JavaScript中,数组是Object。这一语句通过字面量创建了两个Array、それらは異なるオブジェクトであるため、同等ではありません。
JavaScript
Object
Array
2 配列オブジェクトは同じオブジェクトではありません。
比較する値が基準値の場合、2つの値がメモリ内の同じオブジェクトかどうかを比較します。ここでの[1]と[1]は異なるため、偽となります
Ecma-262.pdf7.2.13 抽象的等価性比較 すでに明確に証明されており、ここの [1] = [1] 实际是 [1] === [1] 正好试用第一条。
[1] = [1]
[1] === [1]
Type(x) が Type(y) と同じ場合、 a.厳密な等価比較 x === y を実行した結果を返します
オブジェクトタイプはメモリアドレスを比較します。アドレスが異なるため、falseになります。
比較演算子の間の等価演算子について詳しく紹介します:
上記の内容はすべて正しいです。[1] == [1] では、2 つの配列は異なるオブジェクトであるため、等しくありません。
JavaScript
中,数组是Object
。这一语句通过字面量创建了两个
Array
、それらは異なるオブジェクトであるため、同等ではありません。2 配列オブジェクトは同じオブジェクトではありません。
比較する値が基準値の場合、2つの値がメモリ内の同じオブジェクトかどうかを比較します。ここでの[1]と[1]は異なるため、偽となります
。Ecma-262.pdf
7.2.13 抽象的等価性比較
すでに明確に証明されており、ここの
[1] = [1]
实际是[1] === [1]
正好试用第一条。比較 x == y (x と y は値) は true または false を生成します。このような比較は次のように実行されます:
Type(x) が Type(y) と同じ場合、 a.厳密な等価比較 x === y を実行した結果を返します
オブジェクトタイプはメモリアドレスを比較します。アドレスが異なるため、falseになります。