-
[ JS ] JS의 Array와 자료 구조 관점에서 Array의 차이는?문득 든 의문점 2023. 1. 5. 23:07반응형
의문점
선형 자료구조를 공부하면 Array는 크기 및 인덱스가 고정적이며, 데이터의 입출력에 따른 메모리의 최적화가 이루어지지 않음을 알 수 있다. 하지만 JS에서는 Array 생성후 메서드를 통해 크기의 조정이 가능하며 각 요소가 갖는 인덱스 또한 메서드 적용에 따라 변화한다. 자바스크립트에서의 Array는 자료구조에서 배운 Array와 어떤 차이를 갖는 것일까?
결론
자바스크립트에서 배열을 특별한 유형의 객체이다. Array.prototype 을 상속받아 마치 배열과 같이 숫자형 키를 사용해 요소의 순서를 가지며 메모리 공간에서 연속된 자리를 차지한다. 또한 length 프로퍼티, push, pop, shift, unshift 등 순회와 변형에 대한 메서드를 가진다.
즉, 자바스크립트에서의 배열은 배열 리스트와 유사함을 갖는다. 그러나 이런 유사함도 결국 자바스크립트 엔진에서 제공하는 최적화 기법과 Array.prototype을 상속받음을 통해 구현되는 것이며, 근본적으로 객체란 점은 바뀌지 않는다.(만일 일반 객체와 같이 다룬다면 자바스크립트 엔진에서 제공하는 배열에 대한 최적화 기법이 동작하지 않아 배열로서 갖는 이점을 이용할 수 없다.)
반응형'문득 든 의문점' 카테고리의 다른 글
[ React ] props는 argument와 어떤 차이를 가질까? (0) 2023.03.28 [ CSS ] 가상 요소(::before, ::after)를 써서 얻을 수 있는 이득은 무엇일까? (0) 2023.03.10 [ 자료구조 ] linked list의 삽입/삭제는 정말 array list보다 빠른가? (1) 2023.01.05 [JS] cachingdecorator 에서 어떻게 Map으로 저장한 데이터가 유지될까? (0) 2022.12.15 [JS] JS의 내장 함수는 메서드인가? (0) 2022.12.14