Object

Judo·2020년 11월 8일
1
post-thumbnail
post-custom-banner

Object Basic

  • warrior[nickname] 인 경우 JS 처리 순서
    1. JS가 nickname에 값이 있는지 확인하고
    2. warrior 객체에 nickname 속성이 있는지 확인
    3. 속성이 있다면 그 속성의 값을 조회하고
    4. 없다면 undefined를 리턴함

객체 값 조회

  • Dot notation
    • obj.key
  • Square Bracket notation
    • obj[key]
  • in 연산자
    • 'key' in obj -> boolean 타입의 return값
  • for..in
    • 객체의 key값을 하나씩 반환(배열로 반환 아님)
  • Object.keys()
    • 키를 배열로 반환
  • Object.values()
    • value 를 배열로 반환
  • Object.entries
    • for(let [key,value] of Object.entries(obj)).. -> return값은 [key,valeu] 쌍의 배열을 반환함.
  • 객체엔 for..in , 배열은 for..of -> 다만 Object.entries를 사용 시 for..of 사용
  • object 자체의 길이 조회는 undefined를 리턴함. 조회하려면 키의 갯수 혹은 값의 갯수를 조회하여 리턴

객체 값 삭제

  • 객체 key 삭제
    • delete obj.key
  • 객체 value 삭제
    • delete obj['key']

factory function

  • scope 안에 같은 이름의 변수가 있다면 객체 생성 시 colon 과 value 생략 가능
const userName = 'echo';
const avatar = 'echo.png';
const user = {
	userName,
	avatar
};
console.log(user);// { "avatar": "echo.png",   "userName": "echo" }
  • 객체 리터럴은 간결한 메서드 문법을 지원함
const userName = 'echo';
const avatar = 'echo.png';
const user = {
	userName,
	avatar,
	setUserName (userName) {
		this.userName = userName;
	return this;
	}
};
console.log(user.setUserName('Foo').userName); // "Foo"

Object method, this

  • object method는 객체의 속성으로 정의된 함수를 말함.
    • 호출은 object.method() 형태
  • 'this'는 method를 호출하는 시점에 method를 호출한 객체를 말함.

Object.assign()

  • 출처 객체로부터 대상 객체로 속성을 복사할 때 사용
    Object.assign(target,...source)
    -> source 객체의 속성을 target 객체로 복사함(추가된다는 느낌,동일한 속성 존재 시 덮어씀.)
  • 반환값 -> 대상 객체 . 즉, 복사 후 target 객체

arguments

  • arguments 객체는 함수가 호출될 때 전달된 인수에 해당하는 Array 형태의 객체
    함수가 선언된 순간 arguments 객체를 갖고 있다고 생각
  • Array 는 아니고 length 속성만 사용 가능(pop,push..는 사용 불가) 따라서 typeof arguments === 'object' 이고 Array.isArray(arguments) === false;
  • arguments 객체는 모든 함수 내에서 이용 가능한 지역 변수.
  • 함수 호출 시 전달된 인자를 갖고 있으며 Array형태이기 때문에 index를 이용해 접근할 수 있음.
  • arguments 객체를 array로 변경하는법
    • Array.from() 메서드 사용
    • 유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운 Array 객체를 만 듦.
    • Array.from(arrayLike); -> 반환 값은 새로운 Array
    • 전개 연산자 사용 -> [...arguments] -> array로 변경됨.
profile
즐거운 코딩
post-custom-banner

0개의 댓글