그저 내가 되었고
⚡️JS:: 데이터 타입; 원시형(Primitive Type) vs 참조형(Reference Type) 본문
JavaScript Data Type
자바스크립트의 자료형 (문자, 숫자, array, object 등)은 자료형을 크게 2개로 분류
1) Primitive data type: 문자, 숫자, 불리언, undefined, null, symbol 등. 바로 값을 그대로 할당함.
2) Reference data type: 객체, 배열, 함수 등. 값이 저장된 주소값을 할당(참조)함.
Primitive data type
- 문자, 숫자 자료형들이 대표적
- 변수에 데이터가 직접 저장되는 자료들
var name = 'Nam';
var age = 20;
Reference data type
- Array, Object 등의 자료형
- 자료가 저기에 있다는 화살표(레퍼런스)를 변수에 저장
각 변수 간에 참조 타입 데이터를 복사할 경우, 데이터의 참조가 복사된다.
var x = { count : 100 };
var y = x;
x.count = 99;
console.log(y); // 99
변수 x와 y는 동일한 참조를 담고 있다. 따라서 동일한 객체를 가리키게 된다.
Primitive Type vs Reference Type
E.g.) 1
var list1 = [1, 2, 3]; // 메모리 주소 : 8765e 라고 가정
var list2 = [1, 2, 3]; // 메모리 주소 : 9524d 라고 가정
var isSame = list1 === list2; 8765e === 9524d
console.log(isSame); // false
list1, list2안의 요소는 같지만 배열을 새롭게 만들어 변수에 담고 있기 때문에 각자 새로운 메모리 위치를 만들어 저장하고 그 위치를 참조하여 변수에 해당 위치값을 저장하는 것과 같다. 따라서 결과는 false가 된다.
E.g.) 2
var list3 = [ 1, 2, 3];
var list4 = list3;
var isSame = list3 === list4;
console.log(isSame); // true
위의 예제와는 다르게 새롭게 배열을 생성하지않고 list3의 위치값을 그대로 list4에 넣는 것이기 때문에 위치값이 같은 경우라고 할 수 있다. 따라서 결과는 true가 된다.
REFERENCE
https://velog.io/@tjdkzz97/PrimitiveReference-data-type
https://velog.io/@surim014/JavaScript-Primitive-Type-vs-Reference-Type
'개발 > JavaScript' 카테고리의 다른 글
⚡️JS:: 자바스크립트는 어떻게 동작할까? (0) | 2022.12.13 |
---|---|
⚡️JS:: 메모리 관리(가비지 컬렉션) (0) | 2022.12.12 |
⚡️JS:: if문 작성시 &&연산자로 숫자의 범위 지정하기 (0) | 2022.12.09 |