JavaScript, 객체와 배열 사이의 차이점을 모르겠습니다

gurumong의 이미지

자바스크립트를 배우고 있습니다
그런데 배울수록 객체와 배열의 차이점을 잘 모르겠습니다
선언할때 서로 다른 생성자를 사용하는것으로 보아서 언어적으로는 구별하고 있는것 같은데요

실제로는 아래 처럼 어떤 생성자를 사용하여 선언했는지와 무관하게
사용이 가능해서 둘 사이 어떤 차이점이 있는지 잘 모르겠습니다

// Object생성자를 사용하여 객체 선언, 하지만 배열 처럼 사용
var a = new <span>Object()</span>;
a[5] = 10;
alert(a[5]);
 
// Array생성자를 사용하여 배열 선언, 하지만 객체 처럼 사용
var b = new <span>Array</span>();
b.fifth = function() {
          alert(5);
          };
b.fifth();
winner의 이미지

연관배열의 내부 mechanism은 hash table인 것으로 알고 있습니다.

JavaScript의 Array는 Object의 일종으로 추가적인 method를 지원합니다.
정확하게 알고 싶다면 ECMA script 명세를 읽어보시길 바랍니다.