데이터 타입 - 불변 객체

이한결·2023년 1월 20일
0

부트 캠프

목록 보기
25/98
post-thumbnail

1월 20일 여정 12일차이다.
자바스크립트에도 불변성이 존재한다는 것을 알게되었다. 조금더 불변성과 불변 객체에 대하여 알아볼 필요가 있는 것 같다.

오늘의 Today I Learned

Problem

알아볼 필요가 있는다는 건, 당연히 잘 모르겠다는 뜻이다. 불변성과 가변성에 대해 먼저 알아볼 필요가 있는 것 같다.

try

항해99에서 제공한 Notion 문서는 솔직히 이해하는데 도움이 되지는 못했다. 역시 구글은 최고인 것같다.

solve

불변성(Immutability)는 말 그대로 절대 변하지 않는 것을 말한다. 자바스크립트에는 Boolean, String, Number, Null, undefined, Symbol이 있다. 이런 것들은 원시 타입으로 불변한다.

let name = 'foo';
let newName = name;
name = 'bar';

console.log(newName); //foo
console.log(name); //bar

값이 변할 수 있는 것(Mutable type)은 위에서 불변성으로 언급된 것들을 제외한 나머지가 다 가변값 이다.

let x = {
  name: 'junimo'
};

let y = x;

x.name = 'ken';

console.log(y.name); // ken
console.log(x === y) // true

자 그렇다면 불변 객체는 무엇일까?
불변 객체는 객체 생성 이후 내부 상태가 변하지 않는 객체이다. 그렇다면 불변의 객체가 필요한 이유는 무엇일까?
만약 어떤 정보를 전송해야 되는 경우, 바뀌기 전과 바뀐 후의 정보를 보여줘야 하는데 그때 불변의 객체가 필요하다.

knew

불변이라는 것은 변하지 않는다라는 뜻이다. 사실 이 뜻만 알아도 단어의 절반 이상을 아는 것이 아닐까? 하는 생각이 든다.

마지막으로

데이터 타입이 어렵지만 어려운만큼 중요한 것이다. 복습이 필수이다!

profile
평범한 삶을 위하여

0개의 댓글