Eu tenho visto essa sintaxe em algumas bibliotecas agora e estou me perguntando qual é o benefício. (observe que estou ciente dos fechamentos e do que o código está fazendo, estou preocupado apenas com as diferenças sintáticas)
!function(){
// do stuff
}();
Como alternativa aos mais comuns
(function(){
// do stuff
})();
para auto-invocar funções anônimas.
Estou pensando em algumas coisas. Primeiro, o que está permitindo que o exemplo principal realmente funcione? Por que o estrondo é necessário para tornar esta afirmação sintaticamente correta? Disseram-me também que +
funciona, e tenho certeza que alguns outros, no lugar de!
Segundo, qual é o benefício? Tudo o que posso dizer é que ele salva um único personagem, mas não consigo imaginar que seja um benefício tão grande atrair muitos adotantes. Há algum outro benefício que estou perdendo?
A única outra diferença que vejo é o valor de retorno da função auto-invocadora, mas em ambos os exemplos, não nos importamos com o valor de retorno da função, pois ela é usada apenas para criar um fechamento. Então, alguém pode me dizer por que alguém pode usar a primeira sintaxe?
!
que enfatiza que está sendo executado.