객체
중괄호 {...}를 이용해 객체를 선언하는 것을 객체 리터럴(object literal) 이라고 부른다.
객체를 선언할 땐 주로 이 방법을 사용한다.
let user = { // 객체
name: "John", // 키: "name", 값: "John"
age: 30 // 키: "age", 값: 30
};
객체는 몇 가지 특수한 기능을 가진 연관 배열(associative array)이다.
객체는 프로퍼티(키-값 쌍)를 저장한다.
- 프로퍼티 키는 문자열이나 심볼이어야 한다. 보통은 문자열이다.
- 값은 어떤 자료형도 가능하다.
아래와 같은 방법을 사용하면 프로퍼티에 접근할 수 있다.
- 점 표기법: obj.property
- 대괄호 표기법 obj["property"]. 대괄호 표기법을 사용하면 obj[varWithKey]같이 변수에서 키를 가져올 수 있다.
객체엔 다음과 같은 추가 연산자를 사용할 수 있다.
- 프로퍼티를 삭제하고 싶을 때: delete obj.prop
- 해당 key를 가진 프로퍼티가 객체 내에 있는지 확인하고자 할 때: "key" in obj
- 프로퍼티를 나열할 때: for (let key in obj)
자바스크립트에는 일반 객체 이외에도 다양한 종류의 객체가 있다.
- Array – 정렬된 데이터 컬렉션을 저장할 때 쓰임
- Date – 날짜와 시간 정보를 저장할 때 쓰임
- Error – 에러 정보를 저장할 때 쓰임
- 기타 등등
객체 정렬 방식
프로퍼티엔 순서가 있을까?
객체는 '특별한 방식으로 정렬’된다.
정수 프로퍼티(integer property)는 자동으로 정렬되고, 그 외의 프로퍼티는 객체에 추가한 순서 그대로 정렬된다.
let codes = {
"49": "독일",
"41": "스위스",
"44": "영국",
// ..,
"1": "미국"
};
for (let code in codes) {
alert(code); // 1, 41, 44, 49
}
한편, 키가 정수가 아닌 경우엔 작성된 순서대로 프로퍼티가 나열된다.
let user = {
name: "John",
surname: "Smith"
};
user.age = 25; // 프로퍼티를 하나 추가한다.
// 정수 프로퍼티가 아닌 프로퍼티는 추가된 순서대로 나열된다.
for (let prop in user) {
alert( prop ); // name, surname, age
}
'Web > Javascript' 카테고리의 다른 글
메서드와 'this' (0) | 2020.05.31 |
---|---|
참조에 의한 객체 복사 (0) | 2020.05.31 |
자바스크립트 기초 (0) | 2020.05.22 |
객체지향(OOP) 프로그래밍 (0) | 2018.01.17 |
CLASS (0) | 2018.01.15 |