This is a concise way to form an immediately executed function expression.
Traditionally, people have used these two forms
(function(){ }()); // Recommended by Crockford
(function(){ })(); // What most people use
If you try to just use
function(){ }(); // Syntax error
it will be a syntax error, because it is interpreted as a function declaration rather than an expression. This is why you would need to wrap the function in parentheses.
But if you put a unary operator before the function declaration, you don't have to add a cosing parentheses, and it chops off one character of the code, which is a (very) tiny performance benefit. There are several unary operators that can be used for this same purpose
!function(){ }();
~function(){ }();
-function(){ }();
+function(){ }();