Respostas:
[1,2,3,4,5,6][1,2,3];
^ ^
| |
array + — array subscript access operation,
where index is `1,2,3`,
which is an expression that evaluates to `3`.
O segundo [...]não pode ser uma matriz, portanto é uma operação de subscrito da matriz. E o conteúdo de uma operação subscrita não é uma lista delimitada de operandos, mas uma única expressão.
Leia mais sobre o operador de vírgula aqui .
Porque (1,2) == 2. Você encontrou o operador de vírgula (ou uma explicação mais simples aqui ).
A menos que vírgulas apareçam em uma lista de declarações, lista de parâmetros, objeto ou literal de matriz, elas agem como qualquer outro operador binário. x, yavalia x, avalia ye produz isso como resultado.
[1,2,3,4,5,6][1,2,3];
Aqui a segunda caixa, ou seja, [1,2,3]torna-se [3]o último item, portanto o resultado será 4, por exemplo, se você mantiver [1,2,3,4,5,6]uma matriz
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
similarmente
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
Mas quando você coloca um operador + no meio, o segundo colchete não é para mencionar o índice. É uma outra matriz É por isso que você obtém
[1,2,3] + [1,2] = 1,2,31,2
ie
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
Basicamente, no primeiro caso, é usado como índice de matriz e, no segundo caso, é ele próprio uma matriz.