17

JavaScriptでは、整数または文字列のいずれかを使用して、配列のインデックスとオブジェクトの「数値」プロパティを取得および設定し、同じ結果を得ることができます。

var a=[], o={};
a[1]    = "foo";  a["1"]   == "foo" // true
a["2"]  = "bar";  a[2]     == "bar" // true
a["-3"] = "baz";  a[-.3e1] == "baz" // true
o[1]    = "foo";  o["1"]   == "foo" // true
o["2"]  = "bar";  o[2]     == "bar" // true
o["-3"] = "baz";  o[-.3e1] == "baz" // true

文字列と数値は相互運用可能ですが(取得と設定の両方で)、どちらが高速です(配列とオブジェクトの両方で)?

4

1 に答える 1

23

当然のことながら、整数は文字列よりも配列アクセスの方が高速です。驚くかもしれませんが、オブジェクト プロパティの文字列よりも高速です。

http://jsperf.com/string-vs-integer-array-indices

ここに画像の説明を入力

http://jsperf.com/string-vs-integer-object-indices

ここに画像の説明を入力

于 2012-05-17T16:18:52.527 に答える