2.6 Objects

gangmin·2021년 12월 18일
0

강의

[ 목표 ]

  1. 우리는 console.log()나 list.push()같은 xx.xx같은 형태를 많이 봐았다. 무슨 의미 일까?
  2. object는 무엇인가

가끔은 list를 만드는게 아니라 object를 만들어야 할 때가 있다.

예를 들어 게임을 만든다고 했을때, 플레이어 구상을 짜기 위해

const playerName = "mini";
const playerPoints = 1000;
const playerFat = false;

위의 코드처럼 작성하면 한눈에 알아보기 힘들고, 수많은 변수가 생길거다.

player.name
player.points
player.fat

이런 식으로 짜는게 훨씬 낫다. 왜냐면 name, points, fat 이라는 특성들이 1개의 개체(entity), 즉 player에 대해서 설명하고 있다는것을 알기 때문이다. 더 잘 정돈되어 보인다.

명심해라. 우리가 하려는 것은 데이터를 가능한 최선으로 정리하는 것이다.

근데 변수로만 만드는것은 변수가 굉장히 많아질텐데, 변수를 기억하기도 힘들 것이다.
앞 선 강의에서 배운, array로 만든다면 어떨까?

const player = ["mini",1000,false];

좋지않다. 각각의 요소들이 무슨 의미인지 안 알려주기 때문이다. 주석을 쓸 수 있겠지만 안좋다.


그래서 object형식으로 데이터를 정리하는 것이다!!!!

const player = {
    playerName
}

이런식으로도 적지 않는다. 왜냐면 우리는 player안에 있으니까!!

  • object는 = 를 쓰지 않고, : 를 쓴다.
  • 1개의 property를 쓴 뒤 콤마(,)를 사용한다. 더 올 수 있기 때문이다.


1) 불러오기

const player = {
    name : "mini",
    points = 1000,
    fat : false
};

console.log(player);
>> {name: 'mini', points: 1000, fat: false}

console.log(player.name);
>> mini

console.log(player["name"]);  // 위의 코드와 동일한 역할
>> mini

console.log와 player.name은 굉장히 비슷하지 않는가??
= console은 object라는 뜻이고, 그 안의 어딘가에 log라는 것이 있다는 것이다.

object는 데이터를 정리하는데 정말 좋지만, 리스트와는 다르다. 리스트는 모든 값이 같은 의미를 갖는다.

  • 만약 내가 한 주의 요일 리스트를 가진다면 그 리스트에 있는 모든 것이 한 주의 요일이라는 것이라는것을 안다.
  • 내가 사야할 것에 대한 리스트를 가지고 있다면, 그 리스트에는 내가 사려는 물품을 넣을 거란걸 안다.


2) 업데이트

console.log(player);
>> {name: 'mini', points: 1000, fat: false}

player.name = "minhee"; // 업데이트
console.log(player);
>> {name: 'minhee', points: 1000, fat: false}

어? 근데 const는 바뀔 수 없다고 하지 않았나??
맞다. 우리는 const를 수정할 수 없다. 그렇지만, 우리가 한 것은 object 안의 무언가를 수정하는 것이다.

에러는 const 전체를 하나의 값으로서 업데이트 하려고 할 때 발생한다.

player = false;

이런식으로 const가 object였는데, boolean으로 바꾸려고 하면 이때 에러가 발생하는 것이다.

  • 이런것도 가능
player.points = player.points + 500;
console.log(player.points);
>> 1500

3) 추가하기

player.lastName = "pizza";  //추가
console.log(player);
>> {name: 'minhee', points: 1000, fat: false, lastName: 'pizza'}

우리는 object에서 뭔가를 얻어오는 방법, 추가하거나 업데이트 하는 법을 배웠다. xx.xx가 어떤 느낌인지 알았지만 아직 xx.xx() 괄호 안에 뭔가를 넣는지는 잘 모른다. 다음 영상에서 하자!

object는 property를 가진 데이터를 저장하도록 해준다.

0개의 댓글