[JS] 10. 객체 리터럴

Jimyu·2023년 10월 19일
0
post-thumbnail

1. 객체란?

객체

  • 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조
  • 0개 이상의 프로퍼티로 구성된 집합
    • 프로퍼티 : 객체의 상태를 나타내는 값(키와 값으로 구성)
    • 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(프로퍼티 값이 함수일 때, 일반 함수와 구분하기 위해 메서드라고 부름.)
var person = {
  name: 'Lee',
  age: 20
};

2. 객체 리터럴로 객체 생성하기

  • JS는 프로토타입 기반 객체지향 언어로, 다양한 방법으로 객체 생성이 가능하다.
    • 객체 리터럴 => 가장 일반적이고 간단한 방법!
    • Object 생성자 함수
    • 생성자 함수
    • Object.create 메서드
    • 클래스(ES6)

리터럴

  • 사람이 이해할 수 있는 문자/약속된 기호를 사용해 값을 생성하는 표기법

객체 리터럴 사용법

  • 중괄호({}) 내에 0개 이상 프로퍼티 정의
  • 변수 할당 시점에 JS 엔진은 리터럴을 해석해서 객체를 생성한다.
  • 객체 리터럴은 표현식이다!(값으로 평가됨)
var person = {
  name: 'Lee',
  sayHello: function(){
    console.log(`Hello! My name is ${this.name}`);
  }
};

3. 프로퍼티

  • 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값
    • 식별자 네이밍 규칙을 준수하지 않으면 따옴표가 필수인 등 번거로우니 웬만하면 규칙에 맞게 네이밍 하자!
  • 프로퍼티 값: 자바스크립트에서 사용 가능한 모든 값

프로퍼티 키 동적 생성

  • [프로퍼티 키]로 표현
  • 문자열/심벌 값 외의 값을 쓰면 문자열로 암묵적 타입 변환
  • 존재하는 프로퍼티 키 중복 선언 시 나중에 선언한 프로퍼티로 덮어쓴다.
var obj = {};
var key = 'hello';

obj[key] = 'world';

메서드

  • 함수를 프로퍼티 값으로 쓴 경우(객체에 묶인 함수)

프로퍼티 접근

1. 마침표 표기법 : . 사용

  • 네이밍 규칙 준수한 경우에만 사용 가능

2. 대괄호 표기법 : [...] 사용

  • 반드시 따옴표로 감싼 문자열이어야 함 (숫자로 이뤄진 문자열 제외)

존재하지 않는 프로퍼티 접근 시 undefined 반환(에러 X)

프로퍼티 삭제

  • delete 연산자 사용
  • 피연산자가 프로퍼티 값에 접근 가능한 표현식이어야 함.

프로퍼티 축약 표현

  • 변수 이름과 프로퍼티 키가 동일한 이름일 때 프로퍼티 생략 가능
let x = 1, y = 2;

const obj = {x, y};

계산된 프로퍼티 이름

  • 문자열/문자열로 타입 변환 가능한 값으로 평가되는 표현식으로 프로퍼티 값 동적 생성 가능
  • 방법 : [프로퍼티 키로 사용할 표현식]
profile
블로그 이전 : https://jimyu-s-record.tistory.com/

0개의 댓글