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