Perché [5,6,8,7] [1,2] = 8 in JavaScript?


278

Non riesco a pensare a questa stranezza.

[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3

Lo so [1,2,3] + [1,2] = "1,2,31,2", ma non riesco a trovare il tipo o l'operazione in corso.

Risposte:


387
[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`.

Il secondo [...]non può essere un array, quindi è un'operazione di sottoscrizione di array. E il contenuto di un'operazione di sottoscrizione non è un elenco delimitato di operandi, ma una singola espressione.

Maggiori informazioni sull'operatore virgola qui .


7
corretto .. ultimo indice utilizzato .. altri esempi: [1,2,3,4,5,6] [1,2,3] === [1,2,3,4,5,6] [3] ; [1,1,1,5,1,1] [3] === [1,1,1,5,1,1] [1,2,3]; in questo modo [1,1,1,5,1,1] [3] == 5
mastak

Leggi di più sull'operatore virgola qui è un'affermazione fuorviante , poiché la voce wiki collegata parla dell'operatore virgola nel contesto C e C ++, e qui hai JavaScript !!
Nawaz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.