3

!function(){...}

Что делает данная конструкци?
Зачем здесь отрицание перед обьявлением функции?

Denis Bubnov
  • 13,958

1 Answers1

6

Скорее всего вы забыли еще одни скобки

!function(){}();

Это немедленный вызов функции. Также вместо ! можно использовать любую унарную операцию. Используется для вызова функции в месте определения если не нужно сохранять результат. Если нужно сохранить результат, обычно используют такую конструкцию

result = function(){}();
tutankhamun
  • 11,366
  • Но ведь можно и просто сразу анонимную функцию вызвать даже если не надо результат сохранять function(){...}() зачем усложнять восприятие и ставить унарный оператор "!" чето все не догоню) – Дима Feb 05 '18 at 05:43
  • @Дима К сожалению вызвать функцию так function(){}(); не получится. Интерпретатор посчитает это неправильным объявлением фунуции – tutankhamun Feb 05 '18 at 05:49
  • !function(){...}() более читабельно чем: (function(){})(); – Vlad Vityuk Feb 05 '18 at 12:08
  • @VladVityuk Мне кажется это дело привычки. Мне лично больше нравится +function... – tutankhamun Feb 05 '18 at 12:26