为什么人们说JavaScript不';你没有关联数组吗?

为什么人们说JavaScript不';你没有关联数组吗?,javascript,object,associative-array,Javascript,Object,Associative Array,一个简单的互联网搜索“javascript中没有关联数组”会发现很多人这样说的结果,其中一些人回答了这个问题。他们会说“JavaScript没有关联数组,它有对象。”阅读关于关联数组的文章,我觉得JS对象是关联数组。这仅仅是一种大多数人不再相信的旧思想吗?这是一种常见的误解吗?或者他们是对的 编辑:我认为这里的注释比标记为重复的问题的答案更好地回答了这个问题。对象确实类似于关联数组,但它们并没有明确设计为关联数组。例如,您无法找到对象的长度,而具有关联数组类型的语言提供了类似数组的功能。这(大致

一个简单的互联网搜索“javascript中没有关联数组”会发现很多人这样说的结果,其中一些人回答了这个问题。他们会说“JavaScript没有关联数组,它有对象。”阅读关于关联数组的文章,我觉得JS对象是关联数组。这仅仅是一种大多数人不再相信的旧思想吗?这是一种常见的误解吗?或者他们是对的


编辑:我认为这里的注释比标记为重复的问题的答案更好地回答了这个问题。

对象确实类似于关联数组,但它们并没有明确设计为关联数组。例如,您无法找到对象的长度,而具有关联数组类型的语言提供了类似数组的功能。这(大致)取决于您使用的“关联数组”的定义。“技术”定义仅说明了基本机制(例如,“长度”不是其中之一),但当人们想到“数组”时,他们想到的是一般的顺序版本,而不是一般的集合。尽管维基百科文章将地图/字典和关联数组等同起来,但有些人区分地图(按键索引)还有一个关联数组,它不仅是一个映射,而且是一个有序映射,就像PHP的关联数组一样,不仅按键索引,而且按数字索引索引。JavaScript对象模糊地类似于映射,但不类似于有序映射。(虽然ES2015确实为某些操作添加了顺序,但最好忽略该顺序。)这可能就是原因。