JavaScript

자바스크립트 객체를 다루는 방법

동띠기 2020. 8. 26. 22:10
728x90

객체를도 값이기 때문에 다루기 위해서는 변수에 할당하면서 이름을 만들어준다.

 

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가 출력이된다



728x90

'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