据说javascript中的所有东西都是对象。因此,为了详细理解这个概念,我编写了以下代码,但得到了一些意想不到的结果。
var color = [];
console.log(color.constructor === Array);
color[color['purple'] = 2] = 'green';
console.log(color);
console.log(color.constructor === Array);
console.log(Array.isArray(color));
根据我的理解,数组只有在键值为number时才能保存值。为了将key存储为字符串,我们使用对象。然而,上面的代码导致了这一结果。
true
[ <2 empty items>, 'green', purple: 2 ]
true
true
typeof color
将导致object
,但这是所有数组的通用情况。在color
变量中,purple: 2
是一个有效的元素吗?color
不应该是对象而不是数组吗?或者,有没有其他内置的方法可以让我检查变量是数组还是对象?
这些类型的问题以前也被问过,但场景略有不同。我寻找了这个特定的案例,但没有得到任何令人满意的结果。
https://stackoverflow.com/questions/51865641
复制相似问题