Réponses:
[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`.
Le second [...]ne peut pas être un tableau, c'est donc une opération d'indice de tableau. Et le contenu d'une opération en indice n'est pas une liste délimitée d'opérandes, mais une seule expression.
En savoir plus sur l'opérateur virgule ici .
Parce que (1,2) == 2. Vous êtes tombé sur l' opérateur virgule (ou explication plus simple ici ).
À moins que des virgules apparaissent dans une liste de déclarations, une liste de paramètres, un objet ou un tableau littéral, ils agissent comme n'importe quel autre opérateur binaire. x, yévalue x, puis évalue yet donne cela comme résultat.
[1,2,3,4,5,6][1,2,3];
Ici la deuxième case ie [1,2,3]devient [3]ie le dernier item donc le résultat sera 4 par exemple si vous gardez [1,2,3,4,5,6]dans un tableau
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
De même
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
Mais lorsque vous placez un opérateur + entre les deux, le deuxième crochet n'est pas pour mentionner l'index. C'est plutôt un autre tableau C'est pourquoi vous obtenez
[1,2,3] + [1,2] = 1,2,31,2
c'est à dire
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
Fondamentalement, dans le premier cas, il est utilisé comme index de tableau et dans le second cas, il est lui-même un tableau.