객체란?
자바 스크립트하면 객체, 객체 하면 자바스크립트
객체는 프로퍼티로 구성된 집합으로 프로퍼티는 키와 값으로 구성된다.
객체의 생김새는 다음과 같다.
const classmates = {
name : "cat", // 프로퍼티 키 : name, 값 : cat
age : 3
}
classmates 객체 안에는 2개의 프로퍼티가 있다. 각 프로퍼티의 키는 name, age, 값은 cat과 3이다.
자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티의 값이 될 수 있다. 함수도 프로퍼티 값이 될 수 있다는 말!
프로퍼티 값이 함수일 경우에는 일반 함수와 구분하기 위해 메서드라고 부른다.
객체를 생성하는 가장 기본적인 방법은 객체 리터럴을 사용하는 것이다.
객체 리터럴은 중활호({...}) 내에 0개 이상의 프로퍼티를 정의해서 만든다. 프로퍼티가 없으면 빈 객체가 생성된다.
프로퍼티에 접근하는 방법은 마침표 표기법과 대괄호 표기법이 있다.
대괄호 표기법을 사용할 경우 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다.
그렇지 않으면 자바스크립트 엔진은 식별자로 해석한다.
프로퍼티 값 수정, 생성, 삭제
생성 : 이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 수정된다.
생성 : 존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적 생성이 된다.
삭제 : delete 연산자는 프로퍼티를 삭제한다. 존재하지 않는 프로퍼티를 삭제하면 아무런 에러 없이 무시된다.
ES6에서 추가된 객체 리터럴 확장 기능
1. 프로퍼티 축약 표현
ES6에서는 프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름일 때 프로퍼티 키를 생략 할 수 있다.
let x = 1, y = 2
// 프로퍼티 축약
const obj = { x , y }
console.log(obj) // {x: 1, y: 2}
2. 계산된 프로퍼티 이름
ES5에서는 계산된 프로퍼티 이름으로 프로퍼티 키를 생성하려면 객체 리터럴 외부에서 대괄호 표기법을 사용해야 하지만
ES6에서는 객체 리터럴 내부에서도 계산된 프로퍼티 이름으로 프로퍼티 키를 생성할 수 있다.
3. 메서드 축약 표현
ES6에서는 메서드를 정의할 떄 function 키워드를 생략한 축약 표현을 사용할 수 있다.
...keepcoing
'STUDY > JavaScript' 카테고리의 다른 글
[javascript] 배열1 - 얕은 복사, 깊은 복사 (0) | 2022.12.29 |
---|---|
[javascript] 함수3 - Rest 연산자 (0) | 2022.12.20 |
[javascript] 함수2 - 화살표 함수 (0) | 2022.12.17 |
[javascript] 함수1 - 함수 정의하기 (0) | 2022.12.14 |
[javascript] Set을 이용해서 중복 제거하기 (0) | 2022.01.06 |
댓글