✔ 원시 자료형은 하나의 데이터를 담고있고 고정된 저장공간이라고 볼수있다.
✔ 대표적인 원시타입으로는 Number
, String
, Boolean
, Null
, Undefined
, Symbol
6가지가 있다.
✔ 원시타입의 공통점은 하나의 값만 가질수있다 ex) let a = 2,3,4 X
✔ 원시자료가 아닌것은 모두 참조자료형이다.
✔ 참조자료형은 다른타입의 데이터를 여러개 보관 할수있다.
✔ 참조자료형은 많은 값을 보관하기 위해 주소(reference)에 저장된다.
✔ 변수에 할당되는 경우는, 변수에 데이터가 저장되는 곳의 주소가 할당이 된다.
✔ 대표적으로 배열(array)
,객체(object)
, 함수(function)
이다.
✔ 원시 자료형이 변수에 할당 될때는 value(값)를 할당하고
✔ 참조 자료형은 보관함의 주소(reference)를 할당한다.
✔ 원시형은 보관함이 고정 이지만 참조형은 동적으로 크기가 변한다.
1. let x = 5; // x는 5다
2. let y = x; // x를 y에 할당 y === 5
3. y = 3; // y를 3으로 재할당하여 y === 3
4. x === 3; // false
원시형은 값을 복사하여 변수에 할당한다
let x = { foo: 3 }; // x는 객체이고 key는 foo, value는 3 이다.
let y = x; // x를 y에 할당하여 y === { foo: 3}
y.foo = 2; // y의 foo 의 value를 2로 변경 { foo : 2}
x === { foo : 2} // true
참조형은 주소를 변수에 할당하여
x를 y에 할당하여 같은 주소를 참조 하기 때문에 y가 바뀌면 x도 바뀐다.
{a:1,b:2,c:3,} === {a:1,b:2,c:3} // false
할당하지않으면 각각 다른주소를 참조하기때문에 값은 같아도 false가 나온다.