제수기 > Javascript > object

Eunbi Jo·2025년 1월 7일
0

제수기

목록 보기
50/90
제수기 - 제발 수업내용을 기억해라 / 단순 수업정리 시리즈

Object

속성모음에 해당하는 자료형

  • object, array, function 등 모두 객체형이다.
  • 객체는 Literal방식과 생성자 방식으로 생성할 수 있다.
  • 속성명은 문자열/식별자/심볼이 가능하다.
  • 속성은 모든 타입을 허용하고, 특히 타입이 함수인 속성은 메소드라고 한다.

속성 참조는 두 가지 방식이 있다.

  • dot notation
  • bracket notation

문자열, 식별자, 심볼 모두 속성명이 가능하지만, 헷갈리기 때문에, 식별자만 사용하는 것이 권장된다.

동적속성 추가

속성 삭제

  1. 속성값 삭제

  2. 속성 삭제

생성자 방식

메소드

  • 메소드 안에서 현재 객체의 다른 속성을 참조할 때는 this를 사용한다.
  • 메소드 선언 시에는 화살표함수를 지양한다. (this바인딩이 다르다.)
  • 메소드 선언 시에는 익명함수, 메소드 단축표현식을 사용하자.

익명함수로 메소드 선언

메소드 단축표현식

객체 namespace로 여러 함수 그룹화💥

💥문제점 : 전역변수를 선언했을 때, 지금은 const라 그나마 다행이지만
만약 const plus = '+'; 이렇게 하면 오류가 난다. (let이면 +에 다른 값을 넣는 게 가능하다.)

근데 이런건 역시 가능하다.

전역이랑 지역변수는 다르니까. 이 안에 덥썩 선언해버리면 전역을 덮어버리게 된다. 이런 걸 방지하려면 직접 함수로 선언하는 게 아니라, 객체를 하나 만들고, 메소드를 선언한다.

객체 반복

for~in문 사용

Object.keys(obj)

Object.values(obj)

Object.entries(obj)

0번지에 키값을, 1번지에 벨류값을 배치해보자. 코드는 배열구조분해할당으로 합쳐서 쓸 수 있다.

전개연산자|나머지파라미터

배열

생긴 건 비슷하게 생겼다.

  • 전개연산자 Spread Operator ...var(변수이름)
  • 나머지파라미터 Rest Prameter ...var(변수이름)

하지만 쓰일 때가 다르다.
전개연산자는 값으로 뿌려서 전달할 때 사용한다.
나머지파라미터는 변수로써 모아서 전달받을 때 사용한다.

다시 기억해보자...
함수선언
const foo = (a, b) => a + b;

  • (a, b)는 매개변수. 공간으로 쓰였다.

함수호출
foo(10, 20);

  • (10, 20)는 매개인자. 값으로 생겼다.

=> 매개인자가 매개변수에 가서 쓰였다.

변수를 넣어서 다시 보자.
선언 : const foo = (a) => a * 2;

  • (a) 매개변수.

호출 : const a = 10;
foo(a);

  • (a) 매개인자.

매개인자 (a)는 a가 아니라, 10이라는 값이 담겨서 매개변수에 보내는 거다.

이걸 기억하면서, 전개연산자와 나머지파라미터를 비교해보자.

...arr1 전개연산자로 쓰였다.
const a = 10;
const b = a;
일 때 좌항의 a와 b는 변수. 우항의 10과 a는 값이다.

아래에서 ...arr1은 어디에 쓰였나? 우항에 쓰였다. 무조건 전개연산자라고 볼 수 있다.

나머지 파라미터로 쓰인 ...c는 좌항에 있다.

이제 응용해보자.

객체

객체병합
{...obj, ...obj2} 전개연산자 사용

객체구조분해할당

...rest 나머지파라미터 사용

함수

이렇게 해줘도 된다.

in은 객체 안에 속성이 있니 없니를 트루 펄스로 반환해주는 연산자다.

속성메소드단축등록

name 속성을 변수로 쓰고
이 안에 든 값을 속성 값으로 풀어준다.

0개의 댓글