Faster to access numeric property by string or integer?

javascript, performance

Solution

Unsurprisingly, integers are faster for array access than strings. Perhaps surprisingly, they are also faster than strings for object properties.

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

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

Problem

In JavaScript you can get and set indexes of arrays and "numeric" properties of objects using either an integer or a string and get the same results: ``` 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 ``` While strings and numbers are interopable—for both getting and setting—which is faster (for both arrays and for objects)?

Original source