Если a является экземпляром Array. Мы знаем, что typeof a вернется 'object', но я хочу, чтобы оно вернулось 'array', могу ли я это сделать?
Если я могу, то как мне это сделать Если нет, то почему?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет, нельзя — массив является объект, простой и понятный:
const aRealArray = [1, 2, 3];
console.info(typeof aRealArray);Однако вы могу проверяете, является ли что-то массивом, используя Array.isArray или instanceof
const aRealArray = [1, 2, 3];
console.info(Array.isArray(aRealArray));
console.info(aRealArray instanceof Array);
console.info(Object.prototype.toString.call(aRealArray));Обратите внимание, что Array.isArray является более надежной версией (и, как указано @МэттБраун в Комментарии ниже, она работает через iframe). instanceof просто проверяет, находится ли Array.prototype в цепочке прототипов.
Обратите внимание, что использование Array.isArray() является более надежным из двух методов, предложенных в этом ответе (работает даже между iframe).
Да @MattBrowne - я просто хотел добавить instanceof для прототипов. Я добавлю эту информацию в свой ответ.
есть также Object.prototype.toString.call(aRealArray), который возвращает строку "[object Array]"
Да @JaromandaX, я добавлю это к своему ответу.
Попробуйте использовать метод isArray массива, который возвращает логическое значение:
Array.isArray(a)
Обратите внимание, что для Array.isArray() требуется полифилл, если вы все еще используете IE8.
Вместо этого используйте
Array.isArray().