タグ

ブックマーク / qiita.com/VoQn (1)

  • [1,2,3] === [1,2,3] で false なので deepEqual() を実装 - Qiita

    [] == [] // => false よく知られたことですが、{} や [] リテラルで作られたもの同士は同値比較で false を返します [] == []; // false {} == {}; // false [] === []; // false ({}) === ({}); // false これは [] を new Array(), {} を new Object() だと解釈すると自然と理解できると思います。つまりそれぞれ新しいオブジェクトなので、処理系内部的には違うメモリ空間にあるはずです。 でもうっかりやってしまう arr == [1, 2, 3]; の罠 そうとわかっていても、うっかりこうやってテストを書いてしまった経験がある人は多いんじないでしょうか // ライブラリに書いた Array を作るメソッド var makeArray = function () {

    [1,2,3] === [1,2,3] で false なので deepEqual() を実装 - Qiita
    hidesuke
    hidesuke 2012/07/25
    まぁ、ナチュラルにやってしまっていたわけだが
  • 1