【发布时间】:2016-05-16 16:22:26
【问题描述】:
我以为我对 JavaScript 的了解相当不错,直到遇到其他开发人员的代码让我崩溃:
var data = [];
从它的名字可以看出,它应该被用作一个关联数组(即Object),但它是一个Array。然后他将值分配给该数组的键:
data['somekey'] = 'somevalue';
我认为这在 JavaScript 中是不可能的,我认为它会抛出异常,但它确实有效。为什么它有效?如果我们可以使用数组来代替,我们为什么需要对象呢?这是否被认为是一种不好的做法,我应该羞辱那个开发人员吗?
【问题讨论】:
-
试试这个:
typeof []; -
“我应该让那个开发者蒙羞吗?”:不要这样做。
-
Array实例是对象,因此您可以在它们上设置属性。但是您设置的属性不会通过正常方式(for of循环、Array.prototype.forEach等)进行迭代,除非它们是正整数键 -
一切都是javascript中的对象。同样的方式,你可以使用这个 sintaxe obj['item'] 从对象调用索引
标签: javascript arrays associative-array