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

Первое решение, которое приходит в голову — использование typeof — не подходит, поскольку в данном случае тип всегда будет object.

Можно задействовать метод instanceof:

var arr = new Array;
var notarr = 5;
print (arr instanceof Array);
print (noarr instanceof Array);
Однако данный способ не подходит для определения экземпляра Object, потому что все классы, в том числе Array, унаследованы от него.
 
Так же можно использовать следующую конструкцию:

var arr = new Array;
Object.prototype.toString.call(arr) == '[object Array]'

В этом случае можно отличать экземпляры Object по строке [object Object].
 
 

Добавить комментарий