• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

자바 스크립트 배열

22.07.06 10:41 작성 조회수 291

1

자바 스크립트 배열은 연결 리스트처럼 

무작위로 분배되어있다고 하셨는데

그럼 연결리스트랑 차이가 없는건가요?

답변 1

답변을 작성해보세요.

6

안녕하세요 chgus0202님.

사실 메모리 관점에서 보면 연결리스트와 차이가 없습니다.
자바스크립트에서 배열은 이후에 배우게 될 '해시 테이블'로 이루어져 있습니다.
'해시 테이블'은 내부적으로 연결리스트를 이용해 구현합니다.
하지만 사용자 입장에서는 배열처럼 사용할 수 있으므로 배열이라고 불리는 것입니다!
이러한 점 때문에 자바스크립트 배열은 타입이 다른 데이터들이 한 배열에 들어갈 수도 있습니다.
만약 C언어와 같은 배열을 사용하고 싶다면 typed array를 사용해야 하는데, 자료형에 대한 이해가 필요합니다.
자바스크립트 엔진이 발전하면서 최근엔 타입이 같은 일반적인 배열을 생성해도 자바스크립트 엔진이 알아서 연속된 공간에 할당해줍니다.

정리하자면 자료구조 측면에서(추상 자료형의 기능) 배열과 연결리스트로 나눌 수 있고
메모리 측면으로 본다면 둘 다 떨어진 메모리를 연결한 것으로 볼 수 있습니다.(배열 원소의 타입이 같은 타입인 경우는 자바스크립트 엔진이 자동으로 연속된 메모리에 할당)
typed array를 이용하면 연속적인 공간을 사용하는 배열도 생성할 수 있습니다.

궁금증이 해결되셨나요?