通过字符串或整数更快地访问数字属性?

Phr*_*ogz 15 javascript performance

在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
Run Code Online (Sandbox Code Playgroud)

虽然字符串和数字是可互换的 - 对于获取和设置 - 哪个更快(对于数组和对象)?

Phr*_*ogz 20

不出所料,数组访问的整数比字符串更快.也许令人惊讶的是,它们比对象属性的字符串更快.

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

在此输入图像描述

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

在此输入图像描述

  • @Jay:Chrome平均来说是最好的 - 越长越好,浏览器的性能越好.:) (6认同)