배열
작성일 : 2024.10.01
- 배열 : 여러개의 값을 순차적으로 나열한 자료구조
- 요소 : 배열이 가지고 있는 값
- 인덱스 : 요소의 위치를 나타내는 0 이상의 정수
- 배열은 객체 타입이다
- 배열은 배열 리터럴, Array 생성자 함수, Array.of, Array.from 메서드로 생성 가능
- 배열의 생성자 함수 : Array
- 배열의 프로토타입 객체 : Array.prototype
- 일반 객체와 배열을 구분하는 가장 명확한 차이는 "값의 순서"와 "length 프로퍼티"
| 구분 | 객체 | 배열 |
|---|---|---|
| 구조 | 프로퍼티 키와 프로퍼티 값 | 인덱스와 요소 |
| 값의 참조 | 프로퍼티 키 | 인덱스 |
| 값의 순서 | X | O |
| length 프로퍼티 | X | O |
JS 배열은 배열이 아니다
- 밀집 배열 : 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조
- 희소배열 : 배열의 요소가 연속적으로 이어져 있지 않는 배열
- 검색대상요소의 메모리 주소 = 배열의 시작 메모리 주소 + 인덱스 * 요소의 바이트 수
- JS의 배열: 일반적인 배열의 동작을 흉내낸 특수한 객체