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