본문 바로가기

Programing/JavaScript

[JavaScript] 객체(Object) // 속성(Property) // key값 ?

출처

객체(Object)

객체란, 현실의 사물을 프로그래밍에 반영한 겁니다. 코드로 보는게 이해하기 쉽겠죠? 

저를 프로그래밍에 반영해서 간단한 코드로 만들어보겠습니다!

 

1
2
3
4
var zero = {
  firstName: 'Zero',
  lastName: 'Cho'
};
cs

 

짜잔, 간단하게 만들었습니다!(너무 간단한가요?) 이게 저를 자바스크립트로 구현한 것입니다. 위와 같이 zero라는 변수에 { }로 감싼 덩어리를 넣었습니다. 바로 이 덩어리가 저를 표현하는 객체입니다. 객체의 부분별 이름을 알려드리겠습니다.

 

속성(Property)

객체 안을 보면 firstName과 lastName이 왼쪽에 있고, 'Zero'와 'Cho'가 오른쪽에 있네요. 콤마로 구분되는 것들을 객체의 속성이라고 부릅니다. zero 객체에는 firstName: 'Zero'lastName: 'Cho'까지 두 개의 속성이 있는거죠. 속성끼리는 쉼표로 구분해줍니다. 위에서는 보기 좋게 줄 바꿈을 했지만, 꼭 줄바꿈을 해야하는 것은 아닙니다. var zero = { firstName: 'Zero', lastName: 'Cho' }; 처럼 쉼표로 구분되기만 하면 충분합니다.

 

저를 zero라는 객체로 표현했다고 했죠. 너무 간단한게 마음에 안 드나요? firstName, lastName 외에도 age, height, weight 등의 여러 가지 속성을 더 추가할 수 있겠죠? 자신을 직접 객체로 표현해보세요!

 

키(Key)와 값(Value)

속성에서 firstName과 lastName 같은 것들을 객체의 키라고 부르고 'Zero'와 'Cho'를 값이라고 부릅니다.(괄호 안의 영어는 외워두시는 게 좋습니다.) 즉, 속성은 키: 값의 관계로 이루어져있죠. 키는 속성명이라고 생각하시면 됩니다.

 

참고로 키는 문자열만 가능합니다. 또 한가지, 속성명은 따옴표가 없어도 됩니다. 있어도 상관은 없습니다. 위를 보시면 firstName과 lastName은 문자열인데도 따옴표로 안 감싸줬죠? 반드시 따옴표로 감싸줘야 하는 경우도 있습니다. 바로 키에 띄어쓰기가 들어간 경우입니다.

 

1
var wrap = { 'ex ample''wrap' };
cs

 

위와 같은 경우, wrap 객체의 속성명은 'ex ample'입니다. 이렇게 속성명 안에 띄어쓰기가 들어있을 경우는 따옴표로 감싸줍니다.

 

속성값은 어떤 값이든지 상관없습니다. 문자열이어도 되고, 숫자여도 되고, 객체여도 됩니다. 아직 안 배웠지만, 객체나 함수여도 상관 없습니다. 미리 알려드리자면, 속성값이 함수인 것을 우리는 메소드라고 특별히 따로 부릅니다.

 

 

 

++ 프로퍼티란 무엇인가도 참고