gggs
2021. 10. 19. 23:49
배열
배열이란
- js에서 배열은 배열을 흉내내는 특수한 객체 타입
- 배열과 일반적인 객체의 차이점은 값의 순서 유무와 length 프로퍼티 유무
- 일반적으로 배열 자료구조는 각 요소가 동일한 데이터 크기를 가지고 연속적으로 이어져 있는 밀집 배열(dense array)임
- js에서 배열은 각 요소가 동일한 데이터 크기를 가질 필요가 없고 연속적이지 않을 수 있는 희소 배열(sparse array)임
- js의 배열은 해시 테이블로 구현된 객체이므로 인덱스로 접근 시 일반적인 배열보다 성능상 불리하지만 특정 요소 검색이나 삽입, 삭제에 성능상 유리
- 모던 js는 이러한 단점을 극복하고자 배열을 다른 객체와 다른 배열답게 최적화함
length 프로퍼티
- length 프로퍼티는 0 ~ 2^32(약 42억) -1 사이의 수
- length를 명시적으로 할당 시
- 더 작은 수를 할당하면 배열의 크기가 줄어듦
- 더 큰 수를 할당해도 length는 할당 되지만 실제 배열의 크기는 커지지 않음 → empty가 출력되지만 실제로 메모리 공간 확보 이루어지지 않음
- length와 실제 배열 요소의 개수가 일치하지 않는 희소 배열은 지양