Может ли экземпляр typeof Array’instance вернуть ‘Array’ в JavaScript?

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

Если я могу, то как мне это сделать Если нет, то почему?

Вместо этого используйте Array.isArray().

Robby Cornelissen 01.04.2019 03:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
144
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет, нельзя — массив является объект, простой и понятный:

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).

Matt Browne 01.04.2019 02:42

Да @MattBrowne - я просто хотел добавить instanceof для прототипов. Я добавлю эту информацию в свой ответ.

Jack Bashford 01.04.2019 02:45

есть также Object.prototype.toString.call(aRealArray), который возвращает строку "[object Array]"

Jaromanda X 01.04.2019 03:00

Да @JaromandaX, я добавлю это к своему ответу.

Jack Bashford 01.04.2019 04:14

Попробуйте использовать метод isArray массива, который возвращает логическое значение:

Array.isArray(a)

Обратите внимание, что для Array.isArray() требуется полифилл, если вы все еще используете IE8.

Hoppeduppeanut 01.04.2019 02:48

Другие вопросы по теме