[TIL 24]javascript|オブジェクト


オブジェクト



キーと値からなる属性の集合.

オブジェクト作成規則

  • キー値は重複できません.
  • キー値と属性値の間には:に分割する必要があります.
  • 属性を追加する場合は,を使用します.
  • 属性値は、任意のタイプであってもよい.
  • オブジェクト属性へのアクセス



    dot(.)に近づく

  • は、実際の鍵名のみで
  • にアクセスできる.
    const puppy = {
      name : 'choco',
      age : 3
    }
    
    console.log(puppy.name); //choco

    []アクセス

  • キー値にスペースが含まれている場合は、四角カッコを使用してアクセスします.
  • 変数でアクセスできます.
  • const puppy = {
      name : 'choco',
      age : 3
    }
    
    const puppyAge = 'age';
    console.log(puppy[puppyAge]); //3

    属性の割当て

    puppy['name'] = 'milk';
    console.log(puppy.name) // milk
    オブジェクトにはすでにキーが存在し、再割り当てすると値が変更されます.
    puppy.like = 'snack'
    console.log(puppy.like) //snack
    以前はなかったキーでアクセスすると、新しいpropertyが追加されます.

    方法


    オブジェクトのプロパティ値が関数の場合、メソッドと呼ばれます.
    const methodObj = {
      do: function() {
        console.log('This is method!');
      }
    }

    メソッド呼び出し

    methodObj.do();

    オブジェクトの比較


    テキストを変数に保存すると、テキスト自体が保存され、オブジェクトはオブジェクト自体ではなく参照が保存されます.
    const hiObj = { 
      name: '안녕' 
    };
    const helloObj = {
      name: '안녕'
    };
    console.log('객체비교 =>', hiObj === helloObj);
    ->オブジェクト自体を格納するのではなく、オブジェクトの参照を格納します.オブジェクトが持つ真の値はメモリアドレスreferenceですが、オブジェクトをロードするとメモリに格納されているデータが返されます.
    したがって、表示されるデータは同じですが、実際のオブジェクトが持つ実際の値は異なります.(異なるメモリのリファレンスを格納)
    オブジェクト内部の属性値を比較できます!

    オブジェクト巡回方法


    オブジェクトと配列には明確な順序がないため、オブジェクトのキーにアクセスする順序がわかりません.したがって,対象の巡視を無順序保障の巡視と呼ぶ.
    ->length配列順序法は使用できません.(オブジェクトにはlengthキーもないし、indexキーもないから!)

    Object.keys


    オブジェクトが持つキーのリストを配列に戻す
    const puppy = {
      name : 'choco',
      age : 3,
      like : 'snack'
    }
    
    Object.keys(puppy); // [ 'name', 'age', 'like' ]
    Object.keysは配列を返すので、lengthで繰り返し文を使用できます.
    const keys = Object.keys(puppy);
    
    for (let i=0; i<keys.length; i++) {
      const key = keys[i]; // 각각의 키
      const value = puppy[key] // 각각의 키에 해당하는 값
    }

    Object.values


    オブジェクトが持つ値のリストを配列に戻す
    const puppy = {
      name : 'choco',
      age : 3,
      like : 'snack'
    }
    
    Object.values(puppy); // [ 'choco', 3, 'snack' ]

    Object.entries


    オブジェクトのキーと値のペアからなる長さ2の配列を返します.
    const puppy = {
      name : 'choco',
      age : 3,
      like : 'snack'
    }
    
    Object.entries(puppy);
    // [ ['name','choco'], ['age',3], ['like','snack'] ]

    for-in

    for(let i = 0; i < arr.length; i ++)構文の簡略化
  • オブジェクト巡回に加えて、従来のアレイでも
  • を使用することができる.
    const puppy = {
      name : 'choco',
      age : 3,
      like : 'snack'
    }
    
    for (let key in puppy) {
      const value = puppy[key];
      console.log(value);
    }