Из-за оператора запятой .
x = a, b;
Это вычисляет a, затем оно оценивает b, и используется результат b.Таким образом, a оценивается только для его побочных эффектов , в противном случае его результат отбрасывается.
Это означает, что
var f = (
function f(){ return "1"; },
function g(){ return 2; }
)();
- причудливый способ написания
var f = (function g(){ return 2; })();
, который представляет собой необычный способ написания
var f = 2;
и 2 - это число.