🥽 이터레이션 프로토콜 순회 가능한 데이터 컬렉션(자료구조)을 만들기 위해 미리 약속한 규칙 >ES6에서 도입되었다. 이터레이션 프로토콜에는 2가지가 있다. 이터러블 프로토콜 이터레이터 프로토콜 🔵 Iterable 이터러블 프로토콜을 준수한 객체를 이터러블이라 한다. 이터러블은 for...of문으로 순회할 수 있으며 스프레드 문법과 배열 디스트럭처링 할당의 대상으로 사용할 수 있다. 🔵 Iterator 이터레이터 프로토콜을 준수한 객체를 이터레이터라한다. 이터레이터는 이터러블의 요소를 탐색하기 위한 포인터 역할을 한다. 이터러블의 symbol.iterator 메서드가 반환한 이터레이터는 next메서드를 갖는다. 🥽 for ...of 문 for...of문은 이터러블을 순회하면서 이터러블의 요소를 변수에 할당한다. for (변수선언문 of 이터러블) {} 내부적으로 이터레이터의 next 메서드를 호출하여 이터러블을 순회한
const age2 = age와 같은 형태로 배열과 객체를 얕은 복사하면, age2를 수정해도 원본배열인 age가 수정된다. >이에 대해서는 지난 포스팅 Premitive & Reference를 살펴보자 🍍 배열 🍑 얕은 복사 얕은 복사란 객체를 복사할 때 원래값과 같은 참조를 가리키는 것을 말한다. 🥝 Array.slice() 얕은 복사이긴 한데, 깊은 복사 같은 얕은 복사라고 한다..slice는 새로운 배열을 반환해 다른 참조값을 지닌다. 🥝 [].concat(Array) 🥝 Array.from(Array) 🍍 객체 🍑 얕은 복사 🥝 Object.assign({},