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

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

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

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

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

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

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

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

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