JavaScript의 객체 타입
자료형의 구분
자료형은 크게 원시 타입(primitive type)과 참조 타입(reference type)으로 구분됩니다. 이 두가지 타입은 데이터가 메모리에 저장되는 방식에서 차이가 발생합니다.
변수에 A라는 값을 저장한다고 가정할 때, 원시 타입의 경우 메모리 공간 안에 A를 그대로 복사해서 저장합니다. 참조 타입은 A의 참조(=A라는 값을 가지고있는 메모리의 주소)를 저장합니다.
- 원시 타입 : number, string, boolean 등
- 참조 타입 : 배열, 객체, 함수 등
'참조'라는 표현이 다소 어색하게 느껴질 수 있는데요, 참조는 단어 자체의 사전적 정의로 이해하는 것보다 '가리키다'라는 단어로 바꿔서 생각하면 더 쉽게 받아들일 수 있습니다.
값을 직접 보관하는 것과 참조하는 것의 차이를 그림으로 나타내면 아래와 같습니다.
이 그림에서 gender
는 female이라는 값을 참조하고 있습니다. city
는 경기도라는 값을 참조하고 있습니다.
객체
객체는 여러개의 속성(property)과 메서드(method)를 하나의 변수에 저장할 수 있게 해주는 자료형으로, key와 value로 구성됩니다.
사람을 표현하는 객체를 하나 만든다고 가정해봅시다. 사람은 이름, 나이, 성별 등의 속성을 가지고 있습니다.
var person = {
'name': '김철수',
'age': 23,
'gender': 'male'
};
이 경우 김철수
는 속성의 value가 되고, name
은 속성의 key가 됩니다.
값으로 number, string 등 데이터가 할당된다면 프로퍼티, 함수를 할당한다면 메서드가 됩니다.
위의 예시만 보면 객체라는 타입을 굳이 왜 사용하는 건지 이해가 잘 안될 수 있습니다.
person이라는 객체의 속성을 모두 원시 타입 변수로 하나하나 풀어서 나열해 보겠습니다.
var name = '김철수';
var age = 23;
var gender = 'male';
var name2 = '김영희';
var age2 = 29;
var gender2 = 'female';
...
위와같이 작성할 경우 name, age, gender
라는 세 개의 변수가 하나의 대상을 표현하는 값이라는 사실을 이해하기가 어렵습니다. 만약 사람이라는 객체를 1만개 생성해야하는 상황이라면, 데이터를 관리하는데 있어 객체를 사용하는 것이 훨씬 편리할 것입니다.
객체의 속성을 사용하는 방법은 두가지가 있습니다. 하나는 .
을 사용하는 것이고, 다른 하나는 []
를 사용하는 것입니다.
{객체 이름}.{속성 이름}
{객체 이름}['{속성 이름}']
person 객체에 적용하면 아래처럼 됩니다.
person.name // 김철수
person['age'] // 23
참고 링크
'if (study) > JavaScript' 카테고리의 다른 글
HTML 문서가 표현되는 방법, DOM의 개념 (0) | 2019.09.22 |
---|---|
HTML에서 JavaScript를 실행하기 (0) | 2019.09.22 |
JavaScript 기본 문법 요약노트 (0) | 2019.09.05 |