!function () {}();
! will negate (opposite) whatever you're expecting as a result, i.e if you have
var boy = true;
undefined
boy
true
!boy
false
when you call boy, your result will be true, but the moment you add the ! when calling boy, i.e !boy, your result will be false. Which in other words you mean NotBoy, but this time it's basically a boolean result, either true or false.
That's the same thing that happens to the !function () {}(); expression, running only function () {}(); will flag you an error, but add ! right in front of your function () {}(); expression, makes it the opposite of the function () {}(); which should return you true. Example can be seen below:
function () {}();
SyntaxError: function statement requires a name
!function () {}();
true