728x90
배열에 대해 알아보자!
배열
여러 개의 값을 순차적으로 나열한 자료 구조 => 객체 타입
- 요소: 배열이 가지고 있는 값
- 인덱스: 배열에서 자신의 위치를 나타내는 0 이상의 정수
- length 프로퍼티: 배열의 요소의 개수, 배열의 길이
배열 생성 방법
배열 리터럴
Array 생성자 함수
Array.of
Array.from
생성자 함수: Array
proto type 객체: Array.prototype => 배열을 위한 빌트인 메서드 제공
일반 객체와 배열의 차이
- 값의 순서
- length 프로퍼티
=> 배열은 반복문을 통해 순차적으로 값에 접근하기 적합
=> 순차적으로 요소 접근 가능, 역순도 가능
=> 특정 위치부터 순차적으로 요소 접근 가능
밀집 배열
자료구조에서 칭하는 배열(Not JS)
동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조
요소가 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접
희소 배열
자바스크립트에서 가능한 배열
배열의 요소가 연속적으로 이어져 있지 않는 배열
배열의 요소를 위한 각각의 메모리 공간이 동일한 크기를 갖지 않아도 되며, 연속적으로 이어져 있지 않을 수도 있다.
자바스크립트의 배열 = 일반적인 동작을 흉내 낸 특수한 객체
인덱스로 배열 요소에 접근 시 일반 배열보다 느리지만
요소를 삽입 또는 삭제하는 경우 일반 배열보다 빠르다.
=> 인덱스로 접근하는 경우의 성능 대신 배열 요소를 삽입 또는 삭제하는 경우의 성능을 선택
length 프로퍼티
요소의 개수, 배열의 길이를 나타내는 0 이상의 정수를 값으로 갖는다.
- 빈 배열일 경우: 0
- 빈 배열이 아닐 경우: 가장 큰 인덱스에 1을 더한 값
배열에 요소를 추가하거나 삭제하면 자동 갱신
- length 프로퍼티의 값보다 작은 숫자 값을 할당
=> 배열의 길이가 줄어든다. - length 프로퍼티의 값보다 큰 숫자 할당
=> 배열의 길이가 늘어나지는 않는다.
실제 배열에 변화 X, 메모리 공갑 확보 X, 빈 요소 생성X - 희소배열
length와 배열 요소의 개수가 불일치
희소 배열의 length는 희소 배열의 실제 요소 개수보다 언제나 크다.
본 게시글은 모던자바스크립트 Deep Dive - 자바스크립트의 기본 개념 책을 읽고 정리했습니다.
더 자세한 내용은 책을 구매해보시길 권장드립니다!
728x90
반응형
'TIL > JS' 카테고리의 다른 글
아주 쉬운 배열 - 참조, 추가, 갱신, 삭제 (0) | 2023.03.08 |
---|---|
중요한 배열 - 생성 (0) | 2023.03.08 |
중요한 ES6 함수 (0) | 2023.03.03 |
조금 쉬운 빌트인 객체 - 빌트인 전역 함수 (0) | 2023.02.23 |
아주 쉬운 빌트인 전역 프로퍼티 (0) | 2023.02.23 |
댓글