a[1.0] 等效于 a[1]。
js对于引用属性访问全部都是统一的过程,访问a[i]时,先将a变成对象类型O,然后调用desc = O.GetProperty(i)。(GetProperty为对象的内部方法,返回PropertyDescriptor类型,不能通过编程调用)
1. 如果i未定义,则desc为undefined,结果为undefined
2. 如果desc的Value属性为true,返回desc的value
3. 如果desc的Get属性为true,调用desc的get方法并返回
4. 否则,如果O上有accessor,以i为参数调用accessor并返回
5. 否则,返回undefined
对于数组的length,符合上述的情形3,而a[1]符合上述的情形4
【 在 fairfox 的大作中提到: 】
: 网上说 js 数组下标都是转成字符串来访问,所以 a[0] 和 a['0'] 是一样的, 而a[1] 和
: a[1.0] 不是一个,a[1.0] 相当于 a['1.0']
: 但同时数组又有个 length 属性,只有整数下标的元素被计算在内。js 又没有整数类型。
: ...................
--
FROM 123.125.116.*