개발자 Saaad

[JavaScript] 얕은 비교, 깊은 비교 본문

학습/kakao X goorm 풀스택12회차

[JavaScript] 얕은 비교, 깊은 비교

Saaad 2024. 12. 5. 00:28

얕은 비교(Shallow Compare) 란?

  • 숫자, 문자열 등 원시 자료형은 값을 비교합니다.
  • 배열, 객체 등 참조 자료형은 값 혹은 속성을 비교하지  않고, 참조하는 위치를 비교합니다.

 

아래는 예시입니다.

위 그림처럼 빨간 화살표가 Heap 의 다른 주소를 가리키고 있기 때문에 false가 나옵니다. 

참조 자료형의 값 비교 결과

 

 

원시 자료형의 값 비교 결과

 


깊은 비교란?

얕은 비교와 달리 깊은 비교는 객체의 경우에도 값으로 비교합니다.

 

깊은 비교 방법은 다음과 같습니다.

  1. Object depth 가 깊지 않은 경우 : JSON.stringify() 사용
  2. Object depth 가 깊은 경우 : lodash 라이브러리의 isEqual() 사용

 

 


오늘은 얕은비교, 깊은 비교에 대해서 알아봤습니다.

감사합니다.