И вот что-то большее, что я понял из консоли. Как упоминалось ранее, восклицательный знак заставляет функцию возвращать логическое значение.
Для последнего синтаксиса:
( function my_function() {} )()
Мы можем сделать что-то вроде:
(function add_them(a,b) { return a+b;} )(9,4)
Как одновременное определение функции и вызов.
Редактирование: теперь вы спросите, в чем польза '!' определение функции типа. Давайте рассмотрим следующее:
!function a_would_be_function() { alert("Do some junk but inside a function"); }()
вы хотели бы выполнить такую функцию, как указано выше, но без '!' будет генерировать ошибку. Надеюсь, я понятен.