!function () { / code / } () 自执行函数
!function () { /* code / } ();
~function () { / code / } ();
-function () { / code / } ();
+function () { / code */ } ();
这些函数是一个意思,都是告诉浏览器自动运行这个匿名函数的,因为!±~这些符号的运算符是最高的,所以会先运行它们后面的函数,就是返回值不同
常见格式为:(function() { /* code */ })();
解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对括号立即执行返回的未命名函数,括号内为匿名函数的参数。
作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。