Come ha commentato @Mauricio (![]+[])[+[]]è "f" (il primo carattere di "false"), (![]+[])[+!+[]])è "a", ecc ...
Come funziona?
Esaminiamo il primo carattere, "f":
(![]+[])[+[]]; // 'f'
La prima parte dell'espressione, tra parentesi, è composta da ![]+[], il primo operando dell'operatore Addition è ![]e produrrà false, perché un oggetto array, come qualsiasi altra istanza di Object, è vero e applica il Logical (!) NOT unario operatore, produce il valore false, ad esempio.
![]; // false, it was truthy
!{}; // false, it was truthy
!0; // true, it was falsey
!NaN; // true, it was falsey
Dopo di esso, abbiamo il secondo operando dell'addizione, un Array vuoto [], questo viene fatto solo per convertire il falsevalore in String, perché la rappresentazione di stringa di un array vuoto è solo una stringa vuota, è equivalente a:
false+[]; // "false"
false+''; // "false"
L'ultima parte, la coppia di parentesi quadre dopo le parentesi, sono la funzione di accesso alla proprietà e ricevono un'espressione, che è formata dall'operatore Unario Plus applicato nuovamente a un array vuoto.
Quello che fa l'operatore Unary Plus è la conversione del tipo, ad Numberesempio:
typeof +"20"; // "number"
Ancora una volta, questo viene applicato a un array vuoto e, come ho detto prima, la rappresentazione di stringa di un array è una stringa vuota e quando converti una stringa vuota in Number, viene convertita a zero:
+[]; // 0, because
+[].toString(); // 0, because
+""; // 0
Quindi possiamo "decodificare" l'espressione in alcuni passaggi:
(![]+[])[+[]];
(false+[])[+[]];
(false+'')[+[]];
(false+'')[0];
('false')[0]; // "f"
Si noti che l'accesso ai caratteri utilizzando la notazione tra parentesi sui valori String non faceva parte di ECMAScript 3 °. Specifiche dell'edizione, (ecco perché il filecharAt metodo esisteva).
Tuttavia questo tipo di "proprietà indice" che rappresentano i caratteri di una stringa erano standardizzate su ECMAScript 5, e anche prima della standardizzazione la funzionalità era disponibile in un buon numero di browser (anche in IE8 (modalità standard)).