Por que esse JavaScript funciona?
Eu estava olhando para a saída de algumas coisas do UglifyJS e aconteceu com algum código como o seguinte:
var a = 0;
var b = function () {
return function () {
a++;
}(), 'Hello, World'
}();
Depois de executar esse códigoa
é1
eb
é a stringHello, World!
.
À primeira vista, parece queb
seráundefined
já que parece que o resultado de uma função sem valor de retorno está sendo retornado, mas que é seguido por uma vírgula e uma string literal.
Por que isso funciona?
E por que o UglifyJS simplesmente não executa a função anônima e depois retornaHello, World!
como a próxima declaração?