私は UglifyJS からのいくつかの出力を見ていましたが、次のようなコードに出くわしました:
var a = 0;
var b = function () {
return function () {
a++;
}(), 'Hello, World'
}();
そのコードを実行した後aは1、b文字列Hello, World!です。
一見、戻り値のない関数の結果が返されているように見えますが、その後にカンマと文字列リテラルが続くため、そうbなるように見えます。undefined
なぜこれが機能するのですか?
そして、なぜ UglifyJS は無名関数を実行しHello, World!てから次のステートメントとして返さないのでしょうか?