TIL | 객체 object 기초

정세영·2022년 7월 22일
0

Javascript

목록 보기
10/23

1. 객체란 무엇일까?

객체는 자바스크립트 데이터 타입 중의 하나이다.
영어로는 object라고 표현한다.

key값과 value값을 쌍으로 이루어져 있고, 배열과는 다르게 순서가 중요하지 않다.

예를 들어 다음과 같은 배열이 있다고 생각해보자

let person1 = ['곽철용', 'AB형', 'ENFP', '바닐라라떼']

위의 배열에는 특정 사람의 이름과 혈액형, MBTI, 좋아하는 커피에 대한 정보가 담겨있다.

우리가 원하는 정보를 얻기 위해서는 해당 배열에 있는 Index number를 기억해야 한다.

또 다른 사람이 있다고 생각해보자.

let person2 = ['아이스아메리카노', 'INTP', '홍혁팔', 'O형']

person2는 person1의 정보와 다른 순서로 값이 뒤섞여 있다.

사람이 두 명일 때는 괜찮지만, 100명이라면 어떻게 될까? 자료를 처리하기 힘들어질것이다.

그래서 나온 개념이 바로 객체이다.


2. 객체의 문법

Array에 데이터 하나하나를 요소라고 표현했다면 Object에서는 property라고 표현한다.

property는 Key와 Value로 이루어져있다.

객체를 생성할 때는 {} 안에 key와 value를 쌍으로 묶어서 만들어준다.

key값이 여러개일 때는 쉽표(,)로 구분해준다.

객체를 만드는 방법은 여러가지인데 그 중에 아래와 같이 중괄호를 이용해 만드는 방식을 Ovject Literal이라고 한다.

let person1 = {
  name: '곽철용',
  bloodType: 'AB형',
  mbti: 'ENFP',
  favoriteCoffee:'바닐라라떼'
}

3. 객체 안의 객체

Array에서도 배열 안에 배열을 만들 수 있었다.

let mySelf = [
  'SeYoung',
  'South Korea',
  'Seoul',
  25,
  ['비비', '들이']
  ]

같은 데이터를 object로 표현해보면

let mySelf = {
  name: 'SeYoung',
  location: {
  	country: 'South Korea',
    city: 'Seoul'
  	},
  age: 25,
  cats: ['비비', '들이']}
  • mySelf라는 객체에는 4개의 preperties가 있다.
  • name 이라는 key에 'SeYoung'이라는 값이 입력되어있다.
  • location이라는 key에는 또 다른 중괄호가 배치되어 있는데 이는 또 다른 객체가 입력되어있다는 뜻이다. 객체 내부에 중첩된 객체가 또 있는 것이다.
  • location 에 배치 된 객체 안에는 country와 city라는 key들을 가지고 있고 각각 'South Korea', 'Seoul' 이라는 데이터들이 배치되어있다.
  • cats라는 key에는 Array가 데이터로 묶여있는데 이런 형태도 가능하다.

그럼 mySelf를 한 번 출력해보자.

[object Object] {
  age: 25,
  cats: ["비비", "들이"],
  location: [object Object] {
    city: "Seoul",
    country: "South Korea"
  },
  name: "SeYoung"
}
  • 오브젝트를 출력했더니 대괄호 안에 object라고 명시되어 있다.
  • 각각의 property들이 나왔는데 여기서 유념해야할 부분은 객체를 작성할 때 넣은 순서대로 출력이 되지 않았다는 점이다.
  • 자바스크립트 내부적으로 object를 저장할 때 property의 순서까지 저장하지 않기 때문이다.
  • 이는 Array와 가장 큰 차이점인데 object는 순서가 없다. 따라서 인덱스도 없다.

그렇다면 인덱스 없이 객체의 각각의 속성에 어떻게 접근 할 수 있을까?

객체로 표현하면 순서가 없기 때문에 index number를 기억하지 않아도 된다.
우리가 원하는 정보의 key값만 알면 정보에 접근할 수 있다!

다음 포스팅에서 이어서 알아보자.

profile
룰루랄라 개발일지🎶❤️‍🔥🧑‍💻❤️‍🔥🎵

0개의 댓글