Javascript语法101。这是一个 函数声明 :
function foo() {}请注意,这里没有分号:这只是一个函数 声明 。您将需要调用
foo()来实际运行该功能。
现在,当我们添加看似无害的感叹号时:
!function foo() {}它将变为 表达式 。现在它是一个 函数表达式 。该
!单独不会调用函数,当然,但我们现在可以把
()结尾:
!function foo() {}()它的优先级高于!并立即调用函数。
因此,作者正在做的是为每个函数表达式保存一个字节。更具可读性的书写方式是:
(function(){})();最后,
!使表达式返回true。这是因为在默认情况下所有IIFE回报
undefined,这给我们留下了
!undefined这是
true。不是特别有用。



