[1,2,3,4,5,6][1,2,3];
Здесь второй блок, т.е. [1,2,3]
, становится [3]
, т. е. последним, поэтому результат будет 4, например, если вы сохраните [1,2,3,4,5,6]
в массиве
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
аналогично
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
Но когда вы помещаете оператор + между ними, вторая квадратная скобка не упоминает индекс. Это скорее другой массив. Вот почему вы получаете
[1,2,3] + [1,2] = 1,2,31,2
i.e.
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
В основном в первом случае он используется как индекс массива, а во втором случае он сам является массивом.