我一直在用 Javascript 阅读:
- 一切都是对象(除了数字、字符串、布尔值、空值和未定义等基本类型)
- 对象可以被视为关联数组。
从我的结论来看, Array.isArray() 应该为所有内容返回 true(上述原始异常除外)。我理解错了什么?
谢谢 !
我一直在用 Javascript 阅读:
从我的结论来看, Array.isArray() 应该为所有内容返回 true(上述原始异常除外)。我理解错了什么?
谢谢 !
对象和数组是有区别的。Array实际上是一个Array Object。它具有与其他对象不同的方法。String 是一个 String对象。但是,您可以像访问数组一样访问对象。取以下对象
var obj = {
value1: 'Some Value',
value2: 'Some Other Value'
};
你可以得到像
obj['value1'];
obj['value2'];
这并不意味着它是一个Array Object,它只是有不同的访问方式
isArray() 检查对象是否为Array Object,而不是您是否可以像数组一样访问它
数组(javascript 中的 [[Class]] 类型)与关联数组(抽象数据类型)不同,Array.isArray
检查对象是否为普通数组,如({}).toString.call( obj ) === "[object Array]"
.
- 如果 Type(arg) 不是 Object,则返回 false。
- 如果 arg 的 [[Class]] 内部属性的值为“Array”,则返回 true。
- 返回假。