在JSON
的官方文件中对象是一组无序的名称/值对。一个对象开始 用{(左括号)和以}结尾(右括号)。每个名字都是 后跟:(冒号)和名称/值对分开, (逗号)。
注意 我是Javascript新手,从名称JSON(Javascript对象表示法)本身,我假设Javascript中的对象与JSON相同。如果我弄错了,请纠正我。
从上面的定义来看,似乎Javascript对象很可能是由hashmap或BST或类似的数据结构实现的。
但是当我在 Node shell中插入键值对时,它们会以序列化方式插入。这是我在node shell中尝试的东西
> var a = {}
undefined
> a['k1'] = 'a1'
'a1'
> a['k3'] = 'a3'
'a3'
> a['k2'] = 'a2'
'a2'
> a['k4'] = 'a4'
'a4'
> a['k5'] = 'a5'
'a5'
> a
{ k1: 'a1',
k3: 'a3',
k2: 'a2',
k4: 'a4',
k5: 'a5' }
现在,在打印a
时,键值对的返回顺序与插入顺序相同。所以我的问题是:
更新 好的,那么Javascript对象呢?有人可以评论Javascript对象的底层实现。