javascript - [1] == [1] これは偽ですか、それとも真ですか?
伊谢尔伦
伊谢尔伦 2017-05-19 10:44:27
0
6
1966

[1] == [1] 出力された値の数が false になっています。理由を知っている人はいますか?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(6)
过去多啦不再A梦

比較演算子の間の等価演算子について詳しく紹介します:

等しい(==)

比較演算子は 2 つの異なるタイプのオペランドを変換し、厳密な比較を実行します。両方のオペランドがオブジェクトである場合、JavaScript はそれらの内部参照を比較し、それらの参照がメモリ内の同じオブジェクト (領域) を指している場合、つまりスタック メモリ内のそれらの参照アドレスが同じ場合に限り、等しいと判断します。

上記の内容はすべて正しいです。[1] == [1] では、2 つの配列は異なるオブジェクトであるため、等しくありません。

いいねを押す +0
刘奇

JavaScript中,数组是Object
这一语句通过字面量创建了两个Array、それらは異なるオブジェクトであるため、同等ではありません。

いいねを押す +0
阿神

2 配列オブジェクトは同じオブジェクトではありません。

いいねを押す +0
洪涛

比較する値が基準値の場合、2つの値がメモリ内の同じオブジェクトかどうかを比較します。ここでの[1]と[1]は異なるため、偽となります

いいねを押す +0
習慣沉默

Ecma-262.pdf
7.2.13 抽象的等価性比較
すでに明確に証明されており、ここの [1] = [1] 实际是 [1] === [1] 正好试用第一条。


比較 x == y (x と y は値) は true または false を生成します。このような比較は次のように実行されます:

  1. Type(x) が Type(y) と同じ場合、 a.厳密な等価比較 x === y を実行した結果を返します

  2. x が null で y が未定義の場合、true を返します。

  3. x が未定義で y が null の場合、true を返します。

  4. Type(x) が Number で、Type(y) が String の場合、比較の結果 x == ToNumber(y) を返します。

  5. Type(x) が String で、Type(y) が Number の場合、比較の結果 ToNumber(x) == y を返します。

    Type(x) が Boolean の場合、比較の結果 ToNumber(x) == y を返します。
  6. Type(y) が Boolean の場合、比較の結果 x == ToNumber(y) を返します。
  7. Type(x) が String、Number、Symbol のいずれかで、Type(y) が Object の場合、比較の結果 x ==
  8. ToPrimitive(y) を返します。

  9. Type(x) が Object で、Type(y) が String、Number、または Symbol の場合、比較の結果 ToPrimitive(x) を返します
  10. == y.

  11. false を返します。
いいねを押す +0
伊谢尔伦

オブジェクトタイプはメモリアドレスを比較します。アドレスが異なるため、falseになります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!