我正在查看来自 UglifyJS 的一些东西的输出,并且发生在一些代码中,如下所示:
var a = 0;
var b = function () {
    return function () {
        a++;
    }(), 'Hello, World'
}();
运行该代码后a是字符串。1bHello, World!
乍一看,这似乎b是undefined因为它看起来像一个没有返回值的函数的结果被返回,但后面跟着一个逗号和一个字符串文字。
为什么这行得通?
为什么 UglifyJS 不只是执行匿名函数然后Hello, World!作为下一条语句返回?