객체를도 값이기 때문에 다루기 위해서는 변수에 할당하면서 이름을 만들어준다.
let my = {
name: '심명섭',
age: 345,
height: 371,
myNull: null,
hobby: {
title: '개발',
lang: 'javascript'
}
}
이상태에서 객체에 값에 접근하는 방법은 두가지가 있다.
1. 점 표기법
console.log(my.name); // 심명섭
이렇게 객체 이름다음에 마침표(.) 다음에 값의 이름을 넣는다. 가장 간단하고 많이 사용하는 방법이다.
하지만 한가지문제가 있다.
지난 포스팅에서 말했듯이 ' ' 따옴표로 감싸주어야하는 이름을 가진경우에는 점 표기법으로 접근이 불가능하다.
let my = {
'my name': '심명섭',
}
이렇게 되어있다고 가정하고 점 표기법을 사용하면 ,
console.log(my.my name); // 에러가 발생
my와 name을 서로 다른문장으로 해석하기 때문에 접근을 할 수가 없다 .
이럴때 두번째 방법인
2. 대괄호 표기법
console.log(my['my name']);
이렇게 대괄호를 열고 문자열로 입력을 하게 된다면 접근이 가능하다 !
띄워쓰기, 숫자로 시작하는 모든 값에 접근이 가능하다.
그리고 조합도 가능한데, console.log(my['my '+' name']); 이렇게도 접근이 가능하다. 또한
let propertName = 'name';
console.log(my[propertName]);
이렇게도 접근할 수 있다. propertName에 name이라는 문자열이 담겨 있음으로 심명섭 출력이 가능하다 .
하지만, 또다른 문제가 있다. 객체안에 객체는 어떻게 접근할까 ?
생각해보면 쉽다.
점 표기법 이라면
console.log(my.hobby.title)
대괄호 표기법 이라면
console.log(my['hobby']['title']);
혹은 조합이라면
console.log(my.hobby['title']);
이런식으로 접근이 가능하다.
만약에 존재하지 않은 property에 접근하려고 하면 당연히 undefined가 출력이된다.
'JavaScript' 카테고리의 다른 글
Javascript for in 문 (0) | 2020.08.27 |
---|---|
자바스크립트 property 가지고 놀기 (0) | 2020.08.26 |
자바스크립트의 객체 (object) (0) | 2020.08.26 |
피보나치 수열 - JS풀이 (0) | 2020.08.26 |
null 과 undefined 의 차이 (0) | 2020.08.25 |