자바스크립트에서는 배열이라는 타입이 존재하지 않으며, 배열의 타입을 찍어보면 객체가 나온다.
위에서 보다시피, 자바스크립트의 배열은 인덱스와 length 속성이 있는 특수한 객체이다.
객체다 보니[1], 숫자 이외의 속성을 추가할 수 있으나 length는 변하지 않았음을 확인할 수 있다.
for-in으로 출력을 해보면 배열이 아닌 값까지 출력되었음을 확인할 수 있다[2].
그래서 위와 같이 for-of 혹은 forEach[3][4]를 사용하는 게 좋다. 한편 유사배열이라는 것이 있다.
아래와 같이 배열처럼 인덱스를 통한 접근이 가능하다.
배열과 유사한 생김새를 지녔지만, 유사배열은 배열이 아니기 때문에 forEach 같은 배열의 메소드를 사용할 수 없다.
또한 유사배열은 이터러블[5]도 아니기 때문에 for-of, 전개구문 역시 사용할 수 없다.
한편, 위와 같이 객체 리터럴 내부에서는 전개 구문 사용이 가능하다.
-----
1. 객체와 배열을 구분할 수 있는 방법은 다음과 같다.
2. for-in 반복문은 enumerable한 모든 값들을 순회한다.
3. for-of 반복문을 사용할 수 있는 이유는 배열이 이터러블이기 때문이다.
4. forEach 반복문은 중간 break가 없어 전체를 순회한다는 단점이 있다.
5. 이터러블은 for-of, 전개구문, 배열 디스트럭처링의 대상이다.
'공부 > JavaScript' 카테고리의 다른 글
객체 병합 (0) | 2023.04.11 |
---|---|
클로저의 활용 (0) | 2023.03.15 |
this 관련 몇 가지 예제 (0) | 2023.03.15 |
실행 컨텍스트 관련 예제 (0) | 2023.03.15 |
중복 제거 후 병합 (0) | 2023.03.13 |
댓글