常规为了使一个js匿名函数立即运行,一般是用“”()将函数定义包裹起来,表示立即运行,eg:(function(){dosomething})(),另一一些装逼的写法则是!function(){dosomething}(),等单目运算符,这些运算符的优先级最高,在dom解析时会自动计算其后的值,如果后方是一个函数定义,那么相当于将函数定义编程了函数表达式,例如 var a = function(){dosomething},a(),那么会立即运行该函数,但是这种方式可能有后遗症,比如
!function(){return 1}(),此时会返回false,因为!会对函数的返回值进行计算,但是如果不需要函数有返回值,只是需要函数的副作用,那么就可以使用这种方式。