kidboi blog

유사배열

등록일 : 2/26/2024

단순히 배열과 유사한 객체를 유사 배열이라고 부릅니다. 이러한 유사 배열에는 다음과 같은 특징들이 있는데요.

1. 숫자 형태의 indexing이 가능합니다.

  • 배열 처럼 각 유사 배열 안에 각 자료는 자동으로 고유의 인덱스를 가지고 있습니다. 이를 통해 각 값에 접근이 가능해집니다.

2. length 프로퍼티가 있습니다.

  • 진정한 유사 배열이라고 할 수 있듯, 요소의 갯수를 저장하는 length 프로퍼티가 존재합니다. indexing 이 가능해도 length 프로퍼티가 없다면 숫자 형태의 key로 구성된 일반적인 객체로 봐야겠죠.

3. 배열의 기본 메소드를 사용할 수 없습니다.

  • 사실상 ‘유사’ 배열 이라는 말이 붙은 이유입니다. 기본적인 배열의 메소드를 사용할 수 없습니다. 이로 인해 유사 배열만의 고유한 특징이 생기는데요. 배열의 메소드 사용을 막고 싶거나 일반 배열엔 없는 특별한 메소드를 제공하고 싶을 때 유사 배열을 만들어 사용하기도 합니다.

4. Array.isArray는 false입니다.

  • 해당 메소드는 파라미터로 전달받은 값이 배열인지 평가해서 불 값을 반환해주는 메소드 입니다. 유사 배열을 파라미터로 전달하면 그 값은 false가 나옵니다.

유사 배열은 다양하게 존재합니다.

유사 배열이란 위의 개념들을 가진 다양한 형태를 아우르기 때문에 다양한 형태로 존재합니다. HTMLCollection의 경우 for of 문을 사용할 수 있지만 다른 유사 배열의 경우 for of 문을 사용할 수 없는 경우도 있습니다.

배열의 메소드를 사용할 수 없다고 했지만 직접 구현해서 마치 배열처럼 사용할 수 있도록 만드는것도 가능합니다.

하지만 이미 존재하는 유사 배열 대부분은 위 4가지 특성을 모두 가지고 있으니까 잘 기억해둡시다.

예:) HTMLCollection, NodeList, DOMTokenList…