向JavaScript中添加有序哈希数据类型是否合理?
Would it be reasonable to add an ordered hash data type to JavaScript?
我在Stack Overflow和其他地方看到了几个问题,询问如何在Javascript中实现有序哈希,有序对象或有序字典。下面是一些例子:
- JavaScript中的有序哈希
- Javascript数据结构快速查找和有序循环?
对我来说,根据官方ECMAScript规范,对象中属性的顺序是"依赖于实现的",尽管大多数浏览器都是按照属性定义的顺序循环的。我可以想象一些程序员测试他们的脚本,看到一切都很好,没有意识到,它可能在一些情况下以意想不到的方式运行,至少在原则上。
我的问题是:他们能改变规范来指定属性的顺序吗?对我来说,这似乎不会太难,但我不知道我是否错过了什么。这将鼓励剩下的几个浏览器的制造商做其他人都在做的事情,增加一个有用的功能。他们基本上会说JavaScript解释器应该做大多数JavaScript解释器所做的事情。我无法想象这样的改变会导致任何类型的兼容性问题。
如果这不是一个现实的选择,为什么不呢?我没有任何近期的实际目标。我在努力满足我的好奇心,为什么语言是这样的
指定对象属性的枚举顺序曾在ECMAScript 5中讨论过,但由于发现没有跨浏览器的实际标准(据我所知)而被删除。
这当然是一个合理的愿望,特别是在JSON兴起之后。
存储哈希表比保存顺序为1的哈希表占用的内存更少。我想这就是为什么规范允许忽略顺序的原因之一。
主要浏览器保留条目顺序可能不会破坏由不知情的开发人员编写的现有脚本。然而,我可以想象EcmaScript实现的最小内存占用会牺牲这个非标准的特性。
1例如,在Java中,您可以选择HashMap
和LinkedHashMap
。
相关文章:
- javascript解释器如何理解变量的数据类型
- 从查询字符串参数推断出正确的数据类型
- 为什么不'我们在javascript中使用函数参数的数据类型
- 基于数据类型的编辑框的汇总列表
- 如何降低此函数的复杂性,该函数根据数据类型进行回调
- 比较和分配数据类型的困难
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- Highcharts系列.数据数据类型限制
- 如何在php循环中显示隐藏的数据类型
- 如何从标签数据类型=“;无线电”;
- 检查数组中元素的数据类型是否为日期对象的最简单方法
- Google Apps 脚本:是否有键值列表数据类型
- javascript中是否有字典数据类型
- jQuery中是否有一些用于处理时间段数据类型的方法
- 向JavaScript中添加有序哈希数据类型是否合理?
- 是否可以说JS函数可以是数据类型?
- jqgrid 3.6.4是否支持本地数据类型?
- 是否可以使用数据类型 json 中止 jquery $.ajax 请求
- 是否存在不舍入的小数数据类型?