티스토리 뷰
깊은 복사는 주소값을 다르게 갖는 것이고 얕은 복사는 주소값을 같이 쓰는 것이다.
//배열, 객체는 그것 그대로 복사하면 이렇게 값이 하나만 바뀌어도 둘 다 영향을 받는다.
let arr1 = [2,3,4];
let arr2 = arr1;
arr1[0] = 100;
console.log(arr2); // [ 100, 3, 4 ]
// 바닐라 JS로는 JSON.parse(JSON.stringify 이것을 써야 한다. 하지만 '현업'에서는 쓰지 않는다고 한다.
const newProfile = {
name : "sam",
hobby : {one : "hunting", two : "running"},
age : 8
}
JSON.stringify(newProfile)
//'{"name":"sam","hobby":{"one":"hunting","two":"running"},"age":8}'
JSON.parse(JSON.stringify(newProfile))
//{name: 'sam', hobby: {…}, age: 8}
const newProfile2 = JSON.parse(JSON.stringify(newProfile));
현업에서는 lodash를 쓴다고 한다. (참고 lodash란 (tistory.com))
얕은 복사는 배열 안의 객체의 값이 같이 바뀐다. 유념하자.
깊은 복사는 서로 다른 주소를 갖기 때문에 철수의 이름이 그대로 나왔다.
'개발자 > 그냥 js' 카테고리의 다른 글
템플릿 리터럴 (0) | 2022.01.12 |
---|---|
Callback 콜백이란 (1) | 2022.01.12 |
spread syntax vs rest syntax (0) | 2022.01.12 |
구조분해할당, Destructuring assignment (0) | 2022.01.12 |
var let const 차이점 그리고 호이스팅 (0) | 2022.01.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- postman
- 코딩습관
- Console
- 도커
- NPM
- arrow
- 호이스팅
- elasticsearch
- 공부법
- 명령어
- yarn
- axios
- Rest
- 에러
- Spread
- 프로그래머스
- Callback
- 콜백
- function
- error
- 백틱
- GraphQL
- 독커
- 코드캠프
- arrowfunction
- nodemon
- js
- Playground
- typeorm
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함