Как определить, является ли переменная массивом

Каков лучший де-факто стандартный кросс-браузерный метод для определения, является ли переменная в JavaScript массивом или нет?

При поиске в Интернете есть несколько разных предложений, некоторые из которых хороши, а многие недействительны.

Например, следующий является основным подходом:

function isArray(obj) {
    return (obj && obj.length);
}

Однако обратите внимание, что происходит, если массив пуст или объект obj на самом деле не является массивом, но реализует свойство длины и т. Д.

Итак, какая реализация является лучшей с точки зрения фактической работы, кросс-браузерности и эффективности работы?

Ответы на вопрос(12)

Ваш ответ на вопрос