티스토리 뷰

반응형

개요

 

Reference copy 차이를 들여다보자

 

내용

 

문자열, 숫자,  불리언은 copy 된다.

- 따라서  하나의 값을 바꾼다고, 다른게 따라 바뀌지 않는다.

 


 

하지만 배열은 다르다. (type object 이다.)

각각의 item 값을 바꿨더니 모두 값이 바뀌었다.

- Dog Tiger

 


 

배열을 reference 하지 않고  copy 하는 방법은 다양하다.

- 개인적으로는  마음에 든다.

 


 

이번에는 구조체를 보자.

배열과 마찬가지이다. 둘은 연결되어 있다. reference

 


 

구조체도 마찬가지로 copy 있는 방법이 있다.

- 역시나 … 가장 마음에 든다.

 


 

그런데 주의할 있다. copy 1단계만 된다는 것이다.

속에 중첩된 (nested) 배열이나 구조체는 copy 되지 않고

reference 된다.

lodash 같은 라이브러리는 cloneDeep 제공하지만, 사용에 주의해야 한다.

아래에 보면 BIGBOY, littleboy reference 되어 적용된게 보인다.

 

 


 

그냥 문자열로 만들었다가 다시 파싱하여 구조체로 집어넣는 편법도 있다.
- dev2
에만 변경사항이 적용되었다.
 


 

참고. 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
14 - JavaScript References VS Copying  (0) 2019.03.19
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
댓글
댓글쓰기 폼