2010-11-10 4 views
0

По Профессионального Javascript для веб-разработчиков массива не является типом данных в Javascript:Array не является типом данных в Javascript?

❑ “undefined” if the value is undefined 
❑ “boolean” if the value is a Boolean 
❑ “string” if the value is a string 
❑ “number” if the value is a number 
❑ “object” if the value is an object or null 
❑ “function” if the value is a function 

Является ли это правильно?

ответ

2

Это правильно, Array просто потомок object. Заметьте, хотя он переопределяет несколько вещей, например .toString() в массиве печатает его элементы в списке закладок, а не "[Object object]", как обычный объект.

+0

Но не число, булевое и строковое тоже объекты? – ajsie

+0

@weng - вы спрашиваете, какие глобальные типы объектов имеют конструкторы, или ...? В этом случае он будет включать в себя ваш список Array, Date, RegExp и Error, все они определены в ECMAScript, если это вопрос ... Я немного смущен тем, что вы здесь делаете. –

+0

они не сообщают свой тип как объект, нет. – rob

2

Я считаю, что это потому, что «Массив» является «объектом»

http://jsfiddle.net/z5Gv2/

+0

Я думаю, вы можете использовать 'if (foo instanceof Array) {...}', чтобы проверить, является ли он одним. – scunliffe

1

Как говорят другие, это рассматривается как «объект». Вы можете проверить, является ли объект массивом, проверяя, является ли его конструктор === для массива.

Смежные вопросы