가끔은 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안에 있으니까!!
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는 데이터를 정리하는데 정말 좋지만, 리스트와는 다르다. 리스트는 모든 값이 같은 의미를 갖는다.
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
player.lastName = "pizza"; //추가
console.log(player);
>> {name: 'minhee', points: 1000, fat: false, lastName: 'pizza'}
우리는 object에서 뭔가를 얻어오는 방법, 추가하거나 업데이트 하는 법을 배웠다. xx.xx가 어떤 느낌인지 알았지만 아직 xx.xx() 괄호 안에 뭔가를 넣는지는 잘 모른다. 다음 영상에서 하자!
object는 property를 가진 데이터를 저장하도록 해준다.