티스토리 뷰
개요
Reference 와 copy 의 차이를 들여다보자
내용
|
문자열, 숫자, 불리언은 copy 된다. - 따라서 하나의 값을 바꾼다고, 다른게 따라 바뀌지 않는다.
|
|
하지만 배열은 다르다. (type 은 object 이다.) 각각의 item 값을 바꿨더니 둘 모두 값이 바뀌었다. - Dog 와 Tiger
|
|
배열을 reference 하지 않고 copy 하는 방법은 다양하다. - 개인적으로는 … 가 마음에 든다.
|
|
이번에는 구조체를 보자. 배열과 마찬가지이다. 둘은 연결되어 있다. reference
|
|
구조체도 마찬가지로 copy 할 수 있는 방법이 있다. - 역시나 … 가 가장 마음에 든다.
|
|
그런데 주의할 게 있다. copy 가 1단계만 된다는 것이다. 그 속에 중첩된 (nested) 배열이나 구조체는 copy 되지 않고 reference 된다. → lodash 같은 라이브러리는 cloneDeep 을 제공하지만, 사용에 주의해야 한다. → 아래에 보면 BIGBOY, littleboy 는 reference 되어 적용된게 보인다.
|
|
그냥 문자열로 만들었다가 다시 파싱하여 구조체로 집어넣는 편법도 있다.
|
참고. let vs var vs const
참고링크: https://goo.gl/DY5ezV
var |
- 포함하는 function 레벨까지 scope 가 늘어난다. - function-scoped hoisting - 변수 재선언도 가능하다. - 상황에 따라 'use string' 를 사용해야 한다. |
완전 구리다 |
let |
- block-scoped hoisting - 변수 재선언 불가 |
ES2015 부터 생김 |
const |
- block-scoped hoisting - 변수 재선언 불가 - 변수 재할당 불가 |
ES2015 부터 생김 |
'javascript30' 카테고리의 다른 글
16 - Mouse Move Shadow (0) | 2019.03.26 |
---|---|
15 - Local Storage (0) | 2019.03.26 |
13 - Slide in on Scroll (0) | 2019.03.18 |
12 - Key Sequence Detection (0) | 2019.03.15 |
11 - Custom Video Player (0) | 2019.03.14 |
- Total
- Today
- Yesterday
- Shortcut
- 잡학툰
- solid
- API
- OpenAI
- 체호프
- 영화
- postgres
- strange
- websocket
- github
- 중용
- go
- 명상
- notion
- ORM
- ChatGPT
- 2023
- pool
- Gin
- golang
- 독서후기
- intellij
- 인텔리제이
- Bug
- 노션
- folklore
- bun
- agile
- 클린 애자일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |