var array = [1, 2, 3];
array; // [1, 2, 3]
var nodes = document.querySelectorAll('div'); // NodeList [div, div, div, div, div, ...]
var els = document.body.children; // HTMLCollection [noscript, link, div, script, ...]
위 코드에서 array를 제외한 다른 변수는 유사배열이다.
유사배열은 데이터로는 구분이 어렵지만 각 변수의 prototype을 확인해보면 배열에서 제공하는 함수등을 사용했을때 오류가 발생한다.
유사배열을 사용하는 이유는 실행 결과로 배열값을 돌려주고 싶을때 원래의 배열 객체가 가지고 있는 기능을 제공하고 싶지않거나 원래의 배열 객체에 없는 기능을 제공하고 싶을때이다.
출처 : https://sub0709.tistory.com/13
출처 : https://www.zerocho.com/category/JavaScript/post/5af6f9e707d77a001bb579d2