Warum funktioniert dieses JavaScript?
Ich habe mir die Ausgabe von UglifyJS angesehen und bin auf folgenden Code gestoßen:
var a = 0;
var b = function () {
return function () {
a++;
}(), 'Hello, World'
}();
Nachdem Sie diesen Code ausgeführt habena
ist1
undb
ist die ZeichenfolgeHello, World!
.
Auf den ersten Blick sieht es so ausb
wird seinundefined
da es so aussieht, als würde das Ergebnis einer Funktion ohne Rückgabewert zurückgegeben, gefolgt von einem Komma und einem String-Literal.
Warum funktioniert das?
Und warum führt UglifyJS nicht einfach die anonyme Funktion aus und kehrt dann zurück?Hello, World!
als nächste aussage?