Possible Duplicate:
What does the exclamation mark do before the function?
I ran across a function definition style that is new to me while browsing the Emile animation library:
!function () {
       // do something
}();
I'm familiar with:
- Function expressions: var foo = function (){}
- Named function expressions: var foo = function bar(){}
- Function declarations: function foo(){}
- Immediate functions: var foo = function (){}()orvar foo = (function (){})()
The snippet above uses immediate function invocation (for variable scoping, I assume), but the ! is what's throwing me off. JSLint is happy with it, so it must be kosher. What does it do?
 
    