Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScript を書き始める前に知っておきたい JavaScript のこと #05

Kotaro Chiba
September 26, 2020

JavaScript を書き始める前に知っておきたい JavaScript のこと #05

JavaScript のデータ型を見てみようという内容。今回はオブジェクトの解説です。

Kotaro Chiba

September 26, 2020
Tweet

More Decks by Kotaro Chiba

Other Decks in Technology

Transcript

  1. const obj_01 = {}; const obj_02 = obj_01; obj_01.foo =

    1; console.log(obj_01.foo, obj_02.foo); // => 1, 1 10 10
  2. const obj = new Object(); const arr = new Array();

    const date = new Date(); console.log(obj instanceof Object); console.log(arr instanceof Array); console.log(date instanceof Date); // => 全て true が返る obj.constructor === Object; arr.constructor === Array; date.constructor === Date; // => 上記と結果が同じ ネイティブコンストラクタはリテラルでも⽣成できる。 18 18
  3. オブジェクト⾃体の⽐較は、⽐較対象のオブジェクトが「同じ 型」で「同じ(プロパティの)値」を持っているかどうかで判 断できない。 const cf_01 = { foo: 'bar' };

    const cf_02 = { foo: 'bar' }; cf_01 === cf_02 // => false const cf_03 = cf_01; // 参照先が同じものは⽐較(というか同じなので)できる cf_03 === cf_01 // => true 22 22
  4. 代替法 その1 isEqual const stooge = { name: 'moe', luckyNumbers:

    [13, 27, 34] }; const clone = { name: 'moe', luckyNumbers: [13, 27, 34] }; stooge === clone; // => false _.isEqual(stooge, clone); // => true 24 24
  5. 代替法 その2 assert.deepStrictEqual const stooge = { name: 'moe', luckyNumbers:

    [13, 27, 34] }; const clone = { name: 'moe', luckyNumbers: [13, 27, 34] }; assert.deepStrictEqual(stooge, clone); // => OK 25 25