问题:前面为什么添加分号
https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/fx.js#L5
解释
对于常见的(function($){…})(jQuery);即是将实参jQuery传入函数function($){},通过形参$接收。 上述函数中,最开始的那个括号,可能会由于js中自动分号插入机制而引发问题。
1
2
3
4
a = b + c
;(function () {
// code
})();
如果没有第二行的分号,那么该处有可能被解析为c()而开始执行。所以有的时候,可能会看到这样的写法:;(function foo(){/…/}()),前边的分号可以认为是防御型分号。