• 📌 json 에서 key 가져오는 방법
    • json 에서 key를 가져오는 방법은 아래와 같다.
    // 방법 1
    Object.keys(json)
    
    // 방법 2
    Object.getOwnPropertyNames(ObjData)
    
    // 방법 3
    for (let key in json) {}

    • 속도의 경우 방법 1과 2가 빠르고, 표준스크립트인 ECMA Script이므로 우선사용을 권장하나 비표준인 익스플로러 9 이하의 버전이라면 다음의 (for key in obj)방식을 사용하는게 좋다.
  • 📌 json 에서 key 가 있는지 여부 확인하는 방법
    // 방법 1.
    json.hasOwnProperty(key)
    
    // 방법 2.
    Object.prototype.hasOwnProperty.call(json, key)
    ({}).hasOwnProperty.call(json, key)
    
    // 방법 3.
    {}.propertyIsEnumerable.call(events, key)

    방법 1

    • 상속된 prototype의 프로퍼티를 제외하고, 오직 json 에서 key 값을 가지고 있는지 확인함. 허나, ESLint를 사용하는 경우 위 사용은 경고 문구를 띄운다.
    • 경고를 띄우는 이유는 아래와 같다.
    var foo = {
      hasOwnProperty: function() {
        return false;
      },
      bar: 'Here be dragons'
    };
    
    foo.hasOwnProperty('bar'); // always returns false
    • foo 의 프로토 타입이 아닌, foo 객체 자체가 hasOwnProperty 객체를 가지면 hasOwnProperty 메소드가 원치 않는 동작을 할 수도 있기 때문이다. 따라서 방법 2를 권장합니다.

    방법 2.

    • Object 의 prototype에 있는 메소드 hasOwnProperty를 호출합니다. 이때 call 메소드를 통해 실행 컨텍스트를 json으로 변경하기 때문에, 오직 json만 가진 property를 리턴합니다.

    방법 3.

    • 방법 3은 방법 2와 완전히 동일한 결과를 리턴합니다.