在某些第三方包中,会见到以 ! 开头的代码,那么为什么要这么做呢?

这种代码的框架是这样的:

!function() {

}();

以这样的形式展现,可能不容易看出来是怎么回事,这么写的用意是什么?

接下来再看另外一个常见的第三方包的导出代码形式:

(function() {

})()

其实, ! 的作用跟 () 的作用相同,都是将后面的部分解析成函数表达式去执行。

同样作用的还有 ~+- 等等。

参考

  1. function与感叹号.
  2. javascript里function之前加上感叹号 ' ! ' 会怎么样?.