[JS] Object 메소드 정리

이제부터 Object 메소드를 제대로 이해하고 Object 메소드를 사용해 더 효율적인 코드를 작성해 보고자 Object 메소드를 MDN 에서 전체적으로 살펴보고 내가 지금 바로 사용할 수 있는 내용을 정리해 보았다.

MDN Object

Object.assign(target, ...sources)

[MDN]Object.assign

  • 객체 값들을 한 번에 모아주고 싶을 때 사용
  • return -> 모두 합친 결과, return type : object
  • target 객체 또한 변함

(🤔 객체의 push 같은 느낌?!, target이 변함을 꼭 기억하자!!)

Object.entries(obj)

[MDN]Object.entries

  • 객체 자체의 열거 가능한 속성 [key, value] 쌍의 배열을 반환
    (for in -> 프로토 타입 체인의 속성 + 열거 가능한 속성 모두 열거)
  • 반환된 배열은 객체가 정의된 순서와 관련 x (object 는 순서가 있는 배열이 아니니까요!)
  • BUT, sort가 필요하면 sort 하면 되겠죠?!
Object.entries(obj).sort((a, b) => a[0].localeCompare(b[0]));
  • Object 는 원래 반복 가능한 객체가 아니기 때문에 for of 문을 사용하지 못하고 in 문을 사용해야 함. 하지만 Object.entries 를 사용하면 key 와 value 를 변수로 바로 사용할 수 있음.
  • Object 는 for in 문을 사용하면 변수로 key 값만 사용gkf 수 있음.

(🤔 Object.entries 를 이용하면 데이터 타입 MAP을 굳이 사용하지 않아도 객체에서 바로 for of 문에서 key 와 value 를 바로 가져와 사용 할 수 있다. 아래 그림 처럼!)

Object.fromEntries(iterable)

[MDN] Object.fromEntries

  • Object.entries의 반대
  • [키, 값] 로 이루어진 배열을 객체로 변환
  • iterable - 반복 가능한 객체. 즉, Array, Map 또는 반복 규약을 구현한 기타 객체

(🤔 API 로 데이터를 받았을 때 배열로 되어있는 것들을 객체로 변환해 사용할 때 좋을 것 같음)

Object.keys(obj)

[MDN] Objects.keys()

  • 객체의 key 값들을 반환한다.
  • return -> key들의 배열

Object.values(obj)

[MDN] Object.values

  • 객체의 values로 이루어진 배열 리턴
  • return 된 배열은 for...in 구문과 동일한 순서를 가짐
    (for in 반복문은 프로토타입 체인 또한 열거한다는 점에서 차이가 있음)

Object.freeze(obj)

[MDN] Object.freeze(obj)

  • 객체를 동결하기 위해 사용
  • 넣은 객체를 동결! 복사되어 동결된 객체를 반환하는 것이 아님!!
  • 새로운 속성 추가, 속성 제거, 속성 수정, 프로토타입 변경 안됨
    (하지만 얕은 동결이기 때문에 object 직속 속성에만 적용되며 직속 속성이 아닌 그 내부의 속성인 경우 변경이 됨.)
  • 새로운 속성 추가, 속성 제거, 속성 수정, 프로토타입 변경 시 -> 조용하게 아무것도 하지 않음(에러 안뜸)
  • return 값은 함수로 전달된 객체, 객체 사본이 아님!(리턴 값을 다른 변수에 할당하고 변경 시 기존의 변수도 값이 변경됨!)

(🤔 이 항목이 있지만 이제는 TYPESCRIPT 를 사용하면 굳이 이 방법을 사용하지 않아도 돼서 요즘은 잘 사용하지 않는다고 한다.)

좋은 웹페이지 즐겨찾기