[JavaScript] 18. 원시타입 VS 객체타입

서회정's avatar
Jan 28, 2026
[JavaScript] 18. 원시타입 VS 객체타입

💡
자바스크립트에서 원시타입객체타입 두 가지로 타입을 나누는 이유
⇒ 값이 저장되거나 복사되는 과정이 서로 다르기 때문
notion image
 
 

1. 원시타입 저장 복사 원리

notion image
⇒ 불변값이라고 부른다. 상수라서 불변인 것이 아니라 실제로 메모리에 저장된 값이 변경되지 않기 때문이다.
 

2. 객체타입 저장 복사 원리

notion image
⇒ 가변값이라고 부른다. 메모리에 저장된 원본 값이 변경될 수 있다.
 
notion image
 

3. 객체타입 주의사항

1. 의도치 않게 값이 수정될 수 있다

notion image
Spread 연산자를 통해 새로운 객체를 생성해서 저장하게 된다. 따라서 메모리에서도 새로운 참조값에 새로운 객체를 생성하게 된다. ⇒ 보다 안전하게 관리할 수 있다.
 

✅ 얕은 복사와 깊은 복사

notion image
 

2. 객체간의 비교는 기본적으로 참조값을 기준으로 이루어진다

notion image
깊은 복사를 통해 만들어진 객체와 비교는 그 안에 있는 값은 같지만 참조값이 다르기때문에 원칙적으로는 같다고 볼 수 없다.
 
notion image
notion image
 

✅ 만일, 참조값이 아닌 프로퍼티를 기준으로 두 객체를 비교하고싶을 때는?

stringify() 같은 객체를 문자로 형변환하는 내장함수를 사용하여 비교할 수 있다.
notion image
notion image
 

3. 배열과 함수도 사실 객체이다

💡
배열과 함수도 추가적인 메서드나 프로퍼티를 가질 수 있다
notion image
Share article

clubnerdy