Antworten:
[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`.
Das zweite [...]
kann kein Array sein, daher handelt es sich um eine Array-Indexoperation. Und der Inhalt einer tiefgestellten Operation ist keine begrenzte Liste von Operanden, sondern ein einzelner Ausdruck.
Lesen Sie mehr über den Komma - Operator hier .
Weil (1,2) == 2
. Sie sind über den Komma-Operator gestolpert (oder eine einfachere Erklärung hier ).
Sofern Kommas nicht in einer Deklarationsliste, Parameterliste, einem Objekt oder einem Array-Literal erscheinen, verhalten sie sich wie jeder andere binäre Operator. x, y
bewertet x
, bewertet y
und ergibt dies als Ergebnis.
[1,2,3,4,5,6][1,2,3];
Hier ist die zweite Box dh [1,2,3]
wird [3]
also das letzte Element so das Ergebnis 4 zum Beispiel sein, wenn Sie halten [1,2,3,4,5,6]
in einem Array
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
ähnlich
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
Wenn Sie jedoch einen + -Operator dazwischen platzieren, wird in der zweiten eckigen Klammer der Index nicht erwähnt. Es ist eher ein anderes Array. Deshalb bekommst du
[1,2,3] + [1,2] = 1,2,31,2
dh
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
Grundsätzlich wird es im ersten Fall als Array-Index verwendet und im zweiten Fall ist es selbst ein Array.