JSONの公式ドキュメントについて
オブジェクトは、名前と値のペアの順序付けられていないセットです。オブジェクトは{(左中括弧)で始まり、}(右中括弧)で終わります。各名前の後には:(コロン)が続き、名前と値のペアは、(コンマ)で区切られます。
私はJavascriptの初心者であり、JSON(Javascriptオブジェクト表記)という名前自体から、JavascriptのオブジェクトはJSONと同じであると想定していることに注意してください。間違えた場合に備えて訂正してください。
上記の定義から、Javascriptオブジェクトは、おそらくハッシュマップまたはBST、あるいは同様のデータ構造のいずれかによって実装されているようです。
しかし、ノードシェルにキーと値のペアを挿入すると、それらはシリアル化された方法で挿入されます。これは私がノードシェルで試したことです
> 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
に、キーと値のペアが挿入と同じ順序で返されます。だから私の質問は:
- キーの高速ルックアップを取得できますか?O(log(n))以上の複雑さを意味します。
- JSONがBST、ハッシュマップ、または同様のDSのようなデータ構造を使用していない場合、JSONオブジェクトはどの程度正確にメモリの下に配置されますか?
OKを更新 します。では、Javascriptオブジェクトについてはどうでしょうか。誰かがJavascriptオブジェクトの基礎となる実装についてコメントできますか?