[JavaScript]원시자료형과 참조자료형

Jes·2022년 5월 12일
0

📕 원시자료형

✔ 원시 자료형은 하나의 데이터를 담고있고 고정된 저장공간이라고 볼수있다.
✔ 대표적인 원시타입으로는 Number, String, Boolean, Null, Undefined, Symbol 6가지가 있다.
✔ 원시타입의 공통점은 하나의 값만 가질수있다 ex) let a = 2,3,4 X

📗 참조자료형 (reference data type)

✔ 원시자료가 아닌것은 모두 참조자료형이다.
✔ 참조자료형은 다른타입의 데이터를 여러개 보관 할수있다.
✔ 참조자료형은 많은 값을 보관하기 위해 주소(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

원시형은 값을 복사하여 변수에 할당한다
x를 y에 할당하여 같게한뒤 y의 값을 바꿔도 x는 변하지않는다.(원시형과 참조형 차이점)

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가 나온다.

profile
Escape Newbie

0개의 댓글