我现在已经在一些库上看到了这种语法,我想知道它的好处是什么。(注意我很清楚闭包和代码在做什么,我只关心语法差异)
!function(){
// do stuff
}();
作为更常见的替代品
(function(){
// do stuff
})();
用于自调用匿名函数。
我在想一些事情。首先,是什么让上面的例子真正起作用?为什么为了使这个陈述在语法上正确,bang是必要的?我还被告知+
可以工作,我相信还有其他一些工作,可以代替!
第二,好处是什么?我所知道的是,它节省了一个角色,但我无法想象这有如此大的好处来吸引大量的采用者。我还错过了什么好处吗?
我能看到的唯一的其他区别是自调用函数的返回值,但在这两个例子中,我们并不真正关心函数的返回值,因为它只用于创建一个闭包。有人能告诉我为什么要用第一种语法吗?