...이 구글 검색에서 검색을 도와주는 기호로 사용되서 검색되지 않는다,,,ㅠㅠ

 

-2020.05.17 수정 및 추가

 

요즘 code를 저장하기 편한 노션에 글을 저장해서 이 글 써놓고 잊고 있었다 ㅠㅠㅠ

 

하지만 결국 이름을 알아냈다

 

이름하야 spread operator

 

혹은 spread syntax 라고도 부른다.

 

간단하게 설명하자면 배열을 원소 단위로 찢은 다음, 새로운 원소로 넣는 것이다.

 

a라는 배열이 있고, b라는 변수가 있을 때,

 

var c = [...a,b] 

 

이렇게 하면 c는 a라는 배열 뒤에 b라는 원소가 붙은 새로운 배열이 되게 된다.

 

물론 [...a,...a] 이렇게도 사용 가능하다.

 

 

spread syntax는 정말 여러 용도로도 가능한데 나중에 설명하겠다.

대표적으로는 복사(정확히는 얕은 복사)를 할 때 많이 사용한다.

 

let a = [1,2,3]

let b = a

라고 하게 되면, a와 b는 같은 리스트가 된다.

단순히 값만 같은게 아니라, 이름만 다를 뿐 같은 리스트를 가르킨다.

정확히 말하면 b가 a를 참조를 하고 있다는 것이다.

 

그래서 b[0] = 4 라고 바꾸게 되면

a랑 b 둘다 

 

[4,2,3]

 

이 된다.

 

그래서 배열을 복사해야할 필요가 있는 알고리즘 문제 같은 것을 풀 때 많이 짜증나는데,

이런 문제를 해결하는 방법은 spread operator를 사용하면 된다!

 

let b = [...a] 이렇게 말이다.

물론 얕은 복사가 되어서 object를 복사할 때 깊은 복사를 하고 싶을 때는 다른 방법을 써야하지만...

일단은 배열은 이걸로 충분하다.

 

 

지금보니까 spread syntax에 대해 내가 잘 몰랐고, 정말 대충 설명해놨구나를 느낀다..ㅠㅠ

나중에 더 추가해야겠다. ㅠㅠ

반응형

+ Recent posts