Почему этот JavaScript работает?
Я смотрел на вывод некоторых вещей из UglifyJS и наткнулся на некоторый код, подобный следующему:
var a = 0;
var b = function () {
return function () {
a++;
}(), 'Hello, World'
}();
После запуска этого кодаa
является1
а такжеb
это строкаHello, World!
На первый взгляд кажется, чтоb
будетundefined
поскольку похоже, что возвращается функция без возвращаемого значения, но за ней следует запятая и строковый литерал.
Почему это работает?
И почему нетt UglifyJS просто выполнить анонимную функцию и затем вернутьHello, World!
как следующее утверждение?