Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript新手:Array.isArray()查询_Javascript - Fatal编程技术网

Javascript新手:Array.isArray()查询

Javascript新手:Array.isArray()查询,javascript,Javascript,我一直在读Javascript: 所有内容都是一个对象(数字、字符串、布尔值、空值和未定义的原语除外) 对象可以被视为关联的数组 根据我的结论,Array.isArray()应该为所有内容返回true(前面提到的基本异常除外)。我理解错了什么 谢谢 对象和数组之间有区别。数组实际上是一个数组对象。它有不同于其他对象的方法。字符串是字符串对象。但是,您可以像访问数组一样访问对象。以下面的对象为例 var obj = { value1: 'Some Value', value2:

我一直在读Javascript:

  • 所有内容都是一个对象(数字、字符串、布尔值、空值和未定义的原语除外)
  • 对象可以被视为关联的数组
根据我的结论,Array.isArray()应该为所有内容返回true(前面提到的基本异常除外)。我理解错了什么


谢谢

对象和数组之间有区别。数组实际上是一个数组对象。它有不同于其他对象的方法。字符串是字符串对象。但是,您可以像访问数组一样访问对象。以下面的对象为例

var obj = {
    value1: 'Some Value',
    value2: 'Some Other Value'
    };
你可以得到如下值

obj['value1'];
obj['value2'];
这并不意味着它是一个数组对象,它只是有一种不同的访问方式

isArray()检查对象是否是数组对象,而不是是否可以像数组那样访问它数组(javascript中的[[Class]]]类型)与关联数组(抽象数据类型)不同,
数组。isArray
检查对象是否是普通数组,如
({})。toString.call(obj)=”[对象数组]“

  • 如果类型(arg)不是对象,则返回false
  • 如果arg的[[Class]]内部属性的值为“Array”,则返回true
  • 返回false

  • “对象可以被视为关联数组”并不意味着“对象是关联数组”。“对象可以被视为关联数组”取决于您想要定义“关联数组”的方式。两者有明显的相似性,但某些语言中的“关联数组”具有JS对象不具备的某些特征(反之亦然)。