데이터 타입은 기본형과 참조형으로 나뉜다. (symbol은 뭐냐 나중에 수정)
기본형 (Primitive Type)
- number
- string
- boolean
- null
- undefined
참조형 (Reference Type)
- object
배열, Map, Set, Date 등 typeof를 통해 object로 나오는 것들이 참조형이다. 함수는 function으로 나오지만.. 참조형이다.
기본형과 참조형의 차이점으로는 값의 저장 방식과 불변성의 여부가 있다.
데이터가 저장된 주소를 가리키는 포인터 등을 알고 설명을 해야하는데...
우선은 동작 결과를 가지고 비교만 해보겠다.
기본형 number 타입의 할당예제
var num1 = 1;
var num2 = 3;
console.log(num1,num2);
num1 = num2;
console.log(num1,num2);
num2 = 10;
console.log(num1,num2);
num1 에 num2를 할당하면 num2안의 값이 할당이 된다.
그래서 num2를 바꾸면 num1과 num2의 값이 달라진것을 확인 할 수 있다.
참조형 object 타입의 할당 예제
var arr1 = [0,1,2,3];
var arr2 = [4,5,6,7,8];
console.log(arr1,arr2);
arr1 = arr2;
console.log(arr1,arr2);
num2 = [11,12,13,15];
console.log(arr1,arr2);
arr1에 arr2를 할당하면 arr1과 arr2의 값이 같아보인다.
그런데 arr2를 바꾸면 arr1도 같이 바뀌었다.
arr1에 arr2의 값을 할당한 것이 아니라 arr2 자체를 할당한 것으로 보면 된다.
'Language > javascript' 카테고리의 다른 글
[JavaScript] 호이스팅 hoisting (0) | 2023.10.16 |
---|---|
[JavaScript] 얕은 복사(shallow copy)와 깊은 복사(deep copy) (0) | 2023.10.16 |
[JavaScript] Class / get, set, 상속 (1) | 2023.10.15 |
[JavaScript] Map, Set (0) | 2023.10.14 |
[JavaScript] First-Class Object (0) | 2023.10.14 |