Home Modern Javascript Deepdive [ Chapter 10 객체 리터럴 ]
Post
Cancel

Modern Javascript Deepdive [ Chapter 10 객체 리터럴 ]

DesktopView

이 게시물은 SW마에스트로 연수생 간 진행한 Modern JavaScript DeepDive 스터디 개인 정리 내용입니다.
되도록 책의 내용을 그대로 적기보단 개인적으로 인상깊었던 부분을 구어체로 풀어쓰려 노력했습니다.

Modern JavaScript Deep Dive

Chapter _ 10 객체 리터럴

자바스크립트는 대표적인 객체 지향 언어 C++ 이나 JAVA 와는 조금(?) 다르지만 객체 지향 언어입니다.

그리고 우리가 언어를 공부할 때 가장 중요한 것은 문법보다 단어의 정확한 뜻을 숙지하는 것이 아닐까 싶습니다.

자바스크립트에서 “객체”“변경 가능 한 값 이자, 0개 이상의 프로퍼티로 구성된 집합” 을 의미합니다.

여기서 다시 나온 단어 “프로퍼티” 란 Key 와 Value 로 이루어진 쌍을 말합니다.

자바스크립트에서 사용되는 모든 값은 프로퍼티 로 사용 가능하며 심지어 함수도 프로퍼티 값으로 사용 가능합니다.

이 경우 일반 함수와 구분하기 위해 함수 프로퍼티를 “메서드” 라고 부릅니다.

즉, 프로퍼티는 [ 객체의 상태를 나타내주는 값 ]

메서드는 [ 프로퍼티를 참조하고 조작할 수 있는 동작 ] 을 의미합니다.

프로퍼티

“객체는 프로퍼티의 집합이며 프로퍼티는 키와 값으로 구성된다”

모두 앞서 단어들을 정리하며 봤던 단어들이어서 이해가 조금 더 쉽지 않을까 싶습니다.

프로퍼티의 키와 값에는 조그마한 규칙이 있습니다.

  • 프로퍼티 키 : 빈 문자열을 포함한 모든 문자열 또는 심벌값
  • 프로퍼티 값 : 자바스크립트에서 사용하는 모든 값

특이한 부분이라면 프로퍼티의 키는 거의 모든 경우 문자열을 사용한다는 점입니다.

심볼 있잖아요!!
심볼값도 가능하긴 하지만 거의 대부분의 경우 문자열을 사용합니다!
⇒ 숫자도 가능한데요???
숫자가 가능하지만 그것은 암묵적 변환으로 인해 문자열로 변환되기 때문입니다.
타입스크립트에서도 Key값으로 number타입을 줄 순 있지만 런타임에선 문자열로 변환되는 이유가 이것입니다.

또한 식별자 네이밍 규칙을 준수한다면 문자열의 경우에도 따옴표를 생략할 수 있습니다.

→ 식별자 네이밍 규칙은 챕터 4 를 참고해주세요

1
2
3
4
var person = {
	firstName:"Chansub",
	'last-name':"Kim"
}

firstName 의 경우엔 식별자 네이밍 규칙을 준수했기 때문에 따옴표가 생략되어도 괜찮으나, last-name 의 경우 그렇지 않기 때문에 따옴표를 붙여준 모습입니다.

메서드

프로퍼티의 값이 함수일 경우 일반 함수와 구분하기 위해 붙여진 이름입니다.

함수는 추후 12장에서 다루기 때문에 그 때 자세히 알아보도록 하겠습니다!

프로퍼티 접근

프로퍼티에 접근하는 방법은 총 두 가지 입니다.

  • 마침표 표기법 object.prop
  • 대괄호 표기법 object[prop]

사용 해 보면 많은 부분이 비슷하던데 과연 이 둘의 차이점은 무엇일까요?

대괄호 표기법의 경우엔 대괄호 안에 반드시 따옴표로 감싼 Key 문자열이 존재해야 한다는 점입니다. ⇒ 숫자도 가능하지만 앞서 말 한것과 같이 숫자가 문자열로 암묵적 변환이 이뤄지기 때문입니다.

따라서 식별자 네이밍을 준수하지 못하는 이름의 경우엔 대괄호 표기법으로 접근해야한다는 말이 되겠습니다.

This post is licensed under CC BY 4.0 by the author.