array(배열)

하쿄이_hakyoiii·2022년 1월 3일

자바스크립트

목록 보기
3/4

배열에 대한 이야기

프로그래밍에서 일반적인 배열이란 여러개의 값을 메모리 상에 연속적으로 나열한 구조를 의미한다. 따라서 배열의 원소는 모두 같은 자료형이고, 같은 크기를 갖게 된다. 이렇게 빈틈없이 연속적으로 이어져 있는 배열을 밀집배열(Dense Array)라고 한다.

원소의 메모리 주소와 인덱스 간의 규칙이 있어, 임의의 원소에 빠른 접근이 가능하다.

검색대상 요소의 메모리 주소 = 배열 시작 메모리 주소 + 인덱스 * 요소의 메모리 크기

하지만 자바스크립트의 배열은 이런 일반적인 배열과는 다르다.
배열의 요소를 위한 메모리 공간은 동일한 크기가 아니어도 되고, 연속적으로 이어져 있지 않을 수도 있다.
이런 배열을 희소배열(sparse array)라고 한다.

자바스크립트의 배열은 일반적인 배열이 아닌, 배열의 모양을 흉내낸 특수한 객체이다. 인덱스를 프로퍼티키로 갖고, length 프로퍼티를 갖는 특수한 객체이다.

정리

  1. 일반적인 배열은 인덱스로 배열 요소에 빠르게 접근할 수 있다. 하지만, 특정 요소를 탐색하거나 요소를 삽입 or 삭제하는 경우에는 효율적이지 않다.
  2. 자바스크립트 배열은 해시테이블로 구현된 객체이다.
profile
Hello I'm front-end engineer hakyoung song!

0개의 댓글