Oppure

Loading
06/04/15 22:06
pierotofy
Sapevate che il risultato è true?

++[[]][+[]]+[+[]] == 10 // true


lol
Il mio blog: piero.dev
06/04/15 23:03
HeDo
lol, pensavo fosse una sfida per il parser di titoli del forum :)
aaa
06/04/15 23:44
pierotofy
Anche.
Il mio blog: piero.dev
07/04/15 15:43
Roby94
Esiste una spiegazione?
aaa
07/04/15 16:06
ZioCrocifisso
L'operatore che ha precedenza minore è "+", che in questo caso opera sulle stringhe, quindi l'intera espressione è la concatenazione di ++[[]][+[]] e [+[]]. In JavaScript l'operatore "+" unario converte in un numero, e l'array vuoto diventa 0, quindi la seconda espressione è [+[]] == [0] == "'0". Per quanto riguarda la prima, quello che fa è incrementare di uno l'elemento dell'array [[]] il cui indice è [+[]] (ovvero 0). Il motivo per cui fa questa operazione è che non puoi fare ++[], perché ++ opera sulle variabili, e in quel caso la variabile è l'elemento [0] dell'array, che è un oggetto. Ovviamente avrebbe potuto fare (+[] + 1), ma lo scopo era evidentemente non usare i caratteri numerici, altrimenti avrebbe potuto benissimo scrivere "10".
aaa