前些天看到一个奇怪的现象:有的同学,想得到一个有序的数据集合,但是后台 GG 却给了他一个 json 的结构,并且他们还成功的完成了这个功能…

当时我就犯嘀咕,差点三观尽毁。难道 js 中的对象是有序的?我怎么一直记得是无序的啊。然后赶紧做个呆猫试了试…

吓!?果然是有序的吗…有点不甘心,一口气写了几十个,a-z 写完了,发现依然是按先后次序输出的…不仅如此,后插入的,也会最后输出:

IMAGE

有点崩溃了,转而求助于 python:

IMAGE

发现,我大 python 还是很有节操的没有按序输出…

但是上面的结果能够说明 js 中对象是有序的吗?我们只用了字母作为 key, 是不是有点特殊呢?何不再来几发更特殊的呢,比如数字啥的:

IMAGE

这结果,真是劲爆啊,输出顺序竟然是 数字 > * > 字母,并且数字还会按照大小顺序升序排序,但是字母却不排序…

我大 js 果然是如同脱缰的野马,让人捉摸不透啊…至于输出顺序为什么会是这样先不说,最起码可以证明 javascript 的对象是无序的 了吧。

用的时候要小心呦,有序的话,还是用数组吧,虽然只能用默认下标,起码可靠嘛…