Q:以下代码输出结果是什么?
var arr = []
arr[0] = 1
arr['0'] = 2
console.log(arr[0] + arr['0'])
A:答案
正确答案:4
讲解
首先我们得先知道arr[0]
和 arr['0']
是同一个东西,因为在js中,数组的本质就是对象,即使你不加字符串包裹,js在执行的时候也会自动的给它加上。arr[0]
就等同于下面的写法
{
0:1
}
arr['0']
就等同于下面的写法
{
'0':2
}
其次就会涉及到js浅拷贝的问题,本题由于是操作的同一个内存地址,所以后面的会覆盖掉前面的,那么最终的答案就是4