fffo

배열 본문

Programming/Javascript

배열

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와 실제 배열 요소의 개수가 일치하지 않는 희소 배열은 지양
Comments