Mögliches Duplikat:
Können Sie erklären, warum ++[[]][+[]]+[+[]] = 10
Ich wundere mich etwas für einige Tage... Ich weiß, dass unary plus in JavaScript zuerst konvertiert es Operand zu Zahl. Ich wende + auf ein leeres Array an und erhalte das folgende Ergebnis:
+[] == 0
Wenn ich das tue:
+[1] == 1
Aber:
+[1,2] == NaN
Die letzten beiden Dinge sind fast klar, aber warum ist das leere Feld 0?! Ist dies mit verbunden:
[] == false
Manchmal macht mich ECMAScript sehr stutzig...
alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);
Mit freundlichen Grüßen!