Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- Context API
- javascript
- svelte
- github
- 티스토리챌린지
- Study
- js
- tailwind css
- CSS
- 사과게임
- 프레임 워크
- 회고록
- 비제어
- barrel export
- 협업
- zustand
- PullRequest
- 오블완
- Pr
- react-query
- 개발
- frontend
- SWR
- next.js
- 개발자
- 브라우저 동작
- form
- react
- JWT
- Fe
Archives
- Today
- Total
ougi FE
깊은 복사와 얕은 복사가 무엇이고 그 둘의 차이점은 뭘까? 본문
728x90
오늘은 코딩테스트를 풀다 자주 봐왔던 개념인 깊은 복사와 얕은 복사를 자세히 알아보고자 합니다

얕은 복사 깊은 복사가 무엇일까?
얕은 복사란 객체의 참조 값(주소)를 복사하는 것 입니다
깊은 복사란 객체의 실제 값을 복사하는 것 입니다
JavaScript에서의 값은 원시 값과 참조 값으로 나누어집니다
원시 값은 기본 자료형을 말합니다
원시 값에는 Number, String, Boolean, Null, undefined 등이 있습니다
참조 값은 여러 자료형으로 구성되는 메모리에 저장된 객체입니다
참조 값에는 Object, Symbol 등이 있습니다
깊은 복사의 예시
const 똥 = "응가";
let school = "student";
school = "teacher";
console.log(똥) // result: "응가"
console.log(school) // result: "teacher"
이렇게 보면 실제 값이 그대로 복사되는 것을 볼 수 있습니다
- JSON.parse && JSON.stringify: 객체를 json 문자열로 변환
얕은 복사의 예시
const a= {
student: "teacher",
}
let school = a;
school.student = "me";
console.log(a.student); // result: "me"
이렇게 원래 a도 바뀌는 것을 보면 이것은 참조값을 복사한 얕은 복사라고 볼 수 있습니다
- Array.prototype.slice(begin, end): begin부터 end까지 얕은 복사본을 새로운 배열 객체로 반환
- Object.assign(ob, ob2): ob에 ob2 값을 덮어씌우며 수정된 ob return
- ...(spread 전개 연산자): 스프레드 연산자로 배열이나 객체를 복사
마무리
오늘은 깊은 복사 얕은 복사를 배워보았는데 코딩 테스트를 풀면서 그냥 제대로 공부하지 않고 넘어갔었는데
확실히 개념을 잡고 이해하니 더 잘 활용할 수 있을거 같아 기대가 됩니다
글을 읽어주셔서 감사합니다
728x90
'JavaScript' 카테고리의 다른 글
javascript로 사과게임을 만들어보자! (2) | 2025.01.08 |
---|---|
[JavaScript] Shadow DOM이란 뭘까? (2) | 2024.11.26 |
Closure(클로저)가 뭘까? (4) | 2024.11.15 |
package.json? package-lock.json? 무슨 차이일까? (2) | 2024.11.10 |
[코딩 테스트] (제일 작은 수 제거하기) 나의 첫 코딩 테스트 트러블 슈팅!! ⚽(+ shift, sort, pop, splice, Math.min) (1) | 2024.09.28 |