JS - 데이터 타입

이선호·2021년 12월 19일
0
post-thumbnail

기본적으로 기본형은 불변값이고 참조형은 가변값이다.

기본형 데이터란?

  • 원시(기본형) 타입 : 원시 타입(기본형)의 값은 변경 불가능한 값 (immutable value)이다.
  1. 변수를 선언하면 컴퓨터는 우선 메모리의 빈공간에 식별자(변수명)를 저장한다.
  2. 그 공간에 자동으로 undefined를 할당한다.
  3. 그 변수에 기본형 데이터를 할당하려고 하면 별도의 공간에 데이터를 저장한다.
  4. 그 공간에 주소를 변수의 값 영역에 할당한다.

var a = 'abc';
a = a + 'def';

var b = 5;
var c = 5;
b = 7;

변수 a에 문자열 'abc'를 할당했다가 뒤에
'def'를 추가하면 기존의 'abc'가 'abcdef'로 바뀌는 것이 아니라 새로운 문자열 'abcdef'를 만들어 그 주소를 변수 a에 저장한다.

있으면 재활용하고 없으면 새로 만들어서 주소를 저장한다. 결국 값은 그대로기 때문에 불변성을 띈다.

참조형 데이터란?

  • JavaScript는 객체 기반의 스크립트 언어이다. 원시 타입을 제외한 나머지 값들은 모두 객체이다.
  • JavaScript는 객체의 메모리를 직접 조작하지 않고, 해당 객체에 대한 '참조'를 조작한다. 따라서 객체를 가리키는 값은 '참조로 접근한다'라고 한다.
  1. 내부 프로퍼티들을 위한 변수 영역을 별도로 확보해서 확보된 주소를 변수에 연결한다.
  2. 그 변수 영역에 프로퍼티의 식별자(변수명)를 저장한다.
  3. 각 데이터를 별도의 공간에 저장해서 그 주소를 식별자들과 매칭시킨다.

var obj = { a: 1, b: 'bbb' };

obj.a = 2;

프로퍼티에 변화가 있더라도 obj이 바라보고 있는 주소는 @5001로 변하지 않는다.

0개의 댓글