기본자료형
오브젝트를 제외한 모든 값은 변경 불가능한 값 (immutable value) 이다. 예를 들자면, 특히 C 언어와는 다르게도, 문자열은 불변값 (immutable)
기본 자료형의 종류 6가지
:Boolean, Null, Undefined, Number, String, Symbol 타입이 있다.
참조자료형
컴퓨터 과학에서, 객체는 식별자 (Identifier) 로 참조할 수 있는, 메모리에 있는 값이다.
참조 자료형 종류 3가지
: 배열, 객체, 함수
기본 자료형 특징:
let a = 1;
let b = a;
console.log(a); // 1
console.log(b); // 1
console.log(a === b); //true
참조 자료형 특징:
let arr = [1, 2, 3];
let arr1 = arr;
console.log(arr); // [1, 2, 3]
console.log(arr1); // [1, 2, 3]
console.log(arr === arr1); // false
참조 자료형은 기본 자료형과 다르게 작동한다.
변수에 데이터를 할당할 때,
기본 자료형은 데이터 자체를 할당 하지만, 참조 자료형은 데이터가 위치한 주소값만 할당한다.
참조 자료형에 속하는 데이터 형태는 전부 얕은 복사를 하게 된다.~~
얕은 복사
어떠한 데이터를 다른 변수에 복사했을 때, 데이터 자체가 복사가 되는 게 아니라, 데이터의 주소값만 공유해서 결국 하나의 데이터를 공유하는 방식으로 복사하는 것
const a = {name: '철수'};
const b =a;
a.name ='비실';
console.log(a); { name: '비실' }
console.log(b); { name: '비실' }
실상은 둘 다 변경이 된 상태로 확인이 된다. 참조 자료형은 주소값만 공유하기 때문이다.
깊은 복사
데이터 그 자체가 복사되어서 서로 독립적으로 데이터를 가지는 것
let a = 10;
let b =a;
a =20;
console.log(a); 20
console.log(b); 10