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)?
The answer is simple: there is no difference. Javascript arrays are objects. All keys of objects are strings (or symbols), but never numbers.
Object keys can only be strings, and even though a developer can use other data types to set an object key, JavaScript automatically converts keys to a string a value.
Each key in your JavaScript object must be a string, symbol, or number.
Unsurprisingly, integers are faster for array access than strings. Perhaps surprisingly, they are also faster than strings for object properties.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With