Reference, primitive data type

Tae_Tae·2024년 7월 12일

자바스크립트의 자료형 (문자, 숫자, array, object 등)은 자료형을 크게
Primitive 와 Reference data type으로 분류한다.

Primitive data type들은 자료 자체가 변수에 저장되는 자료들이다.
문자, 숫자 자료형들이 대표적인 primitive data type들이다.

var name = 'john';
var age = 20;

이렇게 문자나 숫자 자료형은 문자나 숫자가 변수에 직접 저장된다는 말이다.

Reference data type들은 자료를 변수에 직접 저장하는게 아닌,
자료가 있는 메모리의 위치 레퍼런스를 변수에 저장한다.
(자료가 어디에 있는지 가리키고있는 화살표를 변수에 저장한다고 이해)
Array, Object 자료형이 Reference data인데

var 사람 = { name : 'Kim' };

이거는 사람 이라는 변수엔 { name : 'Kim' } 이 저장된 것이 아니라
{ name : 'Kim' } 값이 저기에 있습니다~ 라는 정보만 저장되어 있다.

var 이름1 = { name : '김' };
var 이름2 = 이름1;
이름1.name = '박';
console.log(이름1);
console.log(이름2);

실행결과

박
박

분명 이름1을 바꾸기 전에 이름2에 저장해두고 이름1을 수정했으니
이름1은 변경한 값, 이름2는 변경 전 값이 출력되어야한다고 생각하는데

이름1과 이름2는 같은 reference를 가지게된 것이고
그 reference는 { name : '김' }이라는 같은 값을 가리키고 있는 것이다.

그래서 { name : '김' }을 수정하면 이름1과 이름2의 값이모두 변경되는것

0개의 댓글