Javascript新手:Array.isArray()查询

时间:2012-08-22 05:25:05

标签: javascript

我一直在用Javascript阅读:

  • Everything 是一个对象(除了诸如数字,字符串,布尔值,null和未定义等基元之外)
  • 可以将对象视为关联数组

根据我的结论,Array.isArray()应该为所有内容返回true(前面提到了原始异常)。我明白了什么错?

谢谢!

2 个答案:

答案 0 :(得分:2)

Object和Array之间存在差异。 数组实际上是数组对象。它具有与其他对象不同的方法。 String是String 对象。但是,您可以像访问数组一样访问对象。采取以下对象

var obj = {
    value1: 'Some Value',
    value2: 'Some Other Value'
    };

你可以获得像

这样的值
obj['value1'];
obj['value2'];

这并不意味着它是数组对象,它只是有不同的访问方式

isArray()检查对象是否为数组对象,如果可以访问它 数组

答案 1 :(得分:1)

Array(a [[Class]] - javascript中的类型)与Associative Array(抽象数据类型)不同,Array.isArray检查对象是否是普通数组,如({}).toString.call( obj ) === "[object Array]"中所示

  
      
  1. 如果Type(arg)不是Object,则返回false。
  2.   
  3. 如果arg的[[Class]]内部属性的值是“Array”,则返回true。
  4.   
  5. 返回false。
  6.