Я не могу обдумать эту причуду.
[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3
Я знаю [1,2,3] + [1,2] = "1,2,31,2"
, но я не могу найти, какой тип или операция выполняется.
javascript
Джо
источник
источник
Потому что
(1,2) == 2
. Вы наткнулись на оператор запятой (или более простое объяснение здесь ).Если запятые не появляются в списке объявлений, списке параметров, объекте или литерале массива, они действуют как любой другой двоичный оператор.
x, y
оцениваетx
, затем оцениваетy
и выдает это как результат.источник
Здесь второй блок, т.е.
[1,2,3]
становится,[3]
т. Е. Последний элемент, поэтому результат будет 4, например, если вы храните[1,2,3,4,5,6]
в массиветак же
Но когда вы ставите оператор + между ними, вторая квадратная скобка не предназначена для упоминания индекса. Это скорее другой массив, поэтому вы получаете
т.е.
По сути, в первом случае он используется как индекс массива, а во втором случае он сам является массивом.
источник