12 Stimmen

JavaScript-Array zu Nummer

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!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X