일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Python
- DP
- 안드로이드
- TypeScript
- Database
- Graph
- network
- 동적 계획법
- java
- db
- BFS
- 그레이들
- LeetCode
- Redux
- DFS
- Javascript
- Algorithm
- VIM
- 백준
- vscode
- frontend
- 프로그래머스
- CS
- react
- 리트코드
- 자바
- 알고리즘
- git
- Data Structure
- 다이나믹 프로그래밍
Archives
- Today
- Total
늘 겸손하게
React - 얕은 비교, 깊은 비교 본문
얕은 비교
자바스크립트에서 얕은 비교는 원시값을 비교할 경우 값을 비교하나, 배열 객체 등 객체를 비교할때는 레퍼런스, 즉 참조값을 비교합니다.
그래서 자바스크립트에서는 같은 값을 가진 객체라도 얕은 비교를 하면 다르다고 판단할 수 있습니다.
const str1 = "hello"
const str2 = "hello"
if (str1 === str2) {
console.log("string same") // string name
}
const obj1 = { number : 10 }
const obj2 = { number : 10 }
if (obj1 == obj2) {
console.log("object same") // 출력 안됨
}
깊은 비교
객체를 비교할때 레퍼런스(주소)만 비교하는것이 아닌 객체의 값들을 비교하는 방식을 말합니다.
깊은 비교의 방법으로는 두 가지가 있는데
첫 번째는 JSON.stringify(). 객체의 깊이가 깊지 않은 경우 사용합니다.
const obj1 = { number : 10 }
const obj2 = { number : 10 }
console.log(JSON.stringify(obj1) === JSON.stringify(obj2));
객체의 깊이가 깊은 경우에는 lodash 라이브러리의 isEqual을 사용합니다. 객체의 깊이가 깊은 경우에는 JSON.stringify() 보단 lodash 라이브러리의 isEqual이 속도가 더 빠릅니다.
JSON.stringify() v.s Lodash.isEqual 벤치마킹
'Programming > React' 카테고리의 다른 글
React : Github-actions로 배포 자동화 (2) | 2023.10.15 |
---|---|
React - Presentational 컴포넌트 & Container 컴포넌트 (2) | 2023.10.14 |
React - 컴포넌트 기반 아키텍처 (0) | 2023.09.13 |
React - Github-pages에 배포하기 (0) | 2023.07.28 |
React - React에 Redux 설치 & 초기 설정 (0) | 2023.07.27 |