Я новичок в Grunt и grunt-contrib-uglify. Я создал тест JavaScript файл:Grunt Uglify выводит код, который не согласен с
function global(window) {
window.test = alert("Test");
test();
})(window);
Когда это изуродованный, он выглядит как
!function(a){a.test=alert("Test"),test()}(window);
Я смущен две вещи:
- Почему есть запятая, а не точка с запятой между
("Test")
иtest
? - Как получается, что этот код действительно дает ожидаемый результат?
Когда я запускаю его в Chrome, появляется предупреждение, но консоль жалуется Uncaught TypeError: test is not a function
. Когда я запускаю его через JSHint, он сообщает: «Ожидалось назначение или вызов функции, и вместо этого увидел выражение».
Есть ли grunt-contrib-uglify, используя преимущества JavaScript, которые ни Chrome, ни я полностью не понимаю?
По крайней мере, моя ошибка заставила меня обнаружить [comma * operator *] (https://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/). –