天天看点

[]的二义性

    先看一道题:

//a赋值的是[undefined]
var a = [[1][1]];
      

   解释过程:

var arr = [1];
//因为arr的长度为1,所以arr[1] == undefined
var a = [arr[1]];      

  明白了我们再来看个:

var a = [[1,2,3][2]];

//解析过程
var arr = [1,2,3];

//arr[2]为3
//所以就是[3]
var a = [arr[2]];      

   再来一个

var a = [
    ['A',1,2,3]
    ['B',2]
];

//解析过程
//漏掉逗号

['B',2] 被看成连续运算[2]
['A',1,2,3][2]  ===== > 2

var a = [2];