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 回答