The following two articles answer your question:
Arrays with numeric indexes
An array is a kind of object that is designed to store numbered values and offers additional methods for conveniently manipulating such a collection.
Working with Objects in JavaScript: Theory and Practice
There are 6 basic ones in JavaScript - these are Undefined (meaning no value), Null, (boolean type), (string), Number (number) and Object (object).
In this case, the first 5 are primitive data types, but Object is not. In addition, it can be conditionally assumed that the Object type has “subtypes”: an array (Array), a function (Function), a regular expression (RegExp) and others.
This is a somewhat simplified description, but in practice it is usually sufficient.
And a simple experiment:
console.log(typeof []); // "object"
Additionally, read the article " Inheritance of classes in JavaScript ." There the case of inheritance Array from Object is just considered.
It would be equally useful to read the article " Objects as associative arrays " (thanks to @AlexKrass for the tip).