они отрицают результат, а не саму функцию:
!function( x ){ return x }( true );
!true
false
В действительности это слегка сжатая форма:
(function(){}())
, так как она требует 1 меньше персонаж. Причина, по которой это необходимо, заключается в том, что вы не можете вызвать объявление функции напрямую, например. это неверно:
function(){}()
, но добавление !
в начале превращает его в функцию expression
и заставляет его работать.