Почему этот JavaScript работает?

Я смотрел на вывод некоторых вещей из UglifyJS и наткнулся на некоторый код, подобный следующему:

var a = 0;
var b = function () {
    return function () {
        a++;
    }(), 'Hello, World'
}();

После запуска этого кодаa является1 а такжеb это строкаHello, World!.

На первый взгляд кажется, чтоb будетundefined поскольку похоже, что возвращается функция без возвращаемого значения, но за ней следуют запятая и строковый литерал.

Почему это работает?
И почему UglifyJS просто не выполняет анонимную функцию, а затем возвращаетHello, World! как следующее утверждение?

Ответы на вопрос(4)

Ваш ответ на вопрос