new TIL. Data Type

유자탱자🍋·2021년 4월 25일
0
post-thumbnail

🗂 변수(variable), 식별자(identifier)

  • 변수 : 변경 가능한 데이터가 담길 수 있는 공간
  • 식별자 : 어떤 데이터를 식별하는 데 사용되는 이름, 변수명

🗂 데이터 할당 과정

  • 기본형 데이터
    : 변수 선언 시, 메모리 빈 공간에 식별자 저장, 우선 그 공간의 값은 undefined로 할당. 데이터 할당 시, 별도의 공간에 데이터 저장, 그 공간의 주소를 변수의 값 영역에 할당.

  • 참고형 데이터
    : 참고형 데이터 내부 프로퍼티들을 위한 변수 영역 별도로 확보하고 확보된 주소를 변수에 연결.


🗂 불변값, 가변값

🔍 불변값의 성질

변수 a에 'abc'를 할당했다가 뒤에 'def'를 추가하면 기존의 값이 바뀌는 것이 아니라 새로운 문자열 'abcdef'를 만들어서 그 주소를 변수 a에 저장함. 이와 같이 변경은 새로 만드는 동작을 통해서만 이루어지며, 가비지 컬렉팅을 당하지 않는 한 한번 만들어진 값은 영원히 변하지 않음.

기본형 데이터(number, string, boolean, null, undefined, symbol)는 모두 불변값

🔍 참조형 데이터가 가변값인 경우

// 기본형 데이터
var a = 10;
var b = a;
b = 15;
// 참고형 데이터
var obj1 = {c: 10, d: 'ddd'};
var obj2 = obj1;
obj2.c = 20;

🔍 참조형 데이터를 불변값으로 사용하는 경우

값으로 전달받은 객체에 변경을 가하더라도 원본 객체는 변하지 않아야 하는 경우

  • 내부 프로퍼티들을 일일이 복사(깊은 복사)
  • immutable.js, ìmmer.js와 같은 라이브러리 활용

0개의 댓글