
// 원시, 참조 타입 구분 기준
// -> 데이터가 메모리에 저장되는 위치에 따라 구분
// -> 모든 데이터는 메모리 안쪽의 어떤 공간에 저장소에 저장됨
let age = 34; // age 변수에 34 라는 숫자 데이터 저장
// 변수의 데이터가 이제 메모리에 존재하는 특정 영역에 숫자가 저장됨
// 원시타입의 데이터 종류 -> 숫자, 문자열, boolean, null, undefined
// 이러한 원시타입은 메모리의 스택 영역에 저장됨
// 다음에 힙 영역을 지나감
// 참조타입의 데이터 종류 -> object, array, map, set
// 참조타입도 데이터가 스택영역에 저장됨
// 참조타입은 데이터를 지칭하는 주소가 스택 영역에 저장되고, 실제 값 자체가 힙 영역에 저장됨
let age2 = {black: 41}; // -> 실제 값은 heap, 주소는 stack
let obj1 = {name : "Alice"}; // 참조타입 생성 (스택에는 데이터 주소, 힙에는 값)
let obj2 = obj1; // 이런 경우엔 obj2 변수는 obj1에 담긴 데이터 주소를 저장함
// 결론적으로 obj1, obj2는 같은 데이터 주소를 가지게 됨
obj2.name = "Bob"; // 이렇게 되면 같은 데이터 주소를 가지므로 obj1의 name이 변경됨
console.log(obj1.name);다행히 메모리에 저장되는 영역에 대해서는
내가 알고 있는 그대로고 변함 없어서 다행이다
Share article