js函数声明外面使用小括号括起来再接一个小括号的写法
js函数声明外面使用小括号括起来再接一个小括号的写法
(function(){})();
(function(){}());
!function(){}();
总结ps:意思将函数声明变成,直接执行的函数表达式.
上面三个语句都是在运算符相关上下文中,所以都是表达式,就可以强制调用了,下面做一下分析: (function(){})(),
(function(){})是一个表达式,会强制其理解成函数直接量方式,也就是表达式方式创建函数,
(function(){})它会返回函数对象的引用,最后使用小括号()调用此函数。
(function(){}()),
如果不用外面包裹的小括号,{}就会理解为复合语句,
那么function(){}就被理解为函数声明,但是没有标识符,所以会报错,
使用小括号以后,就会变成表达式,也会被理解为直接量方式。
!function(){}(),
原理同上,!也是一个运算符,所以在原理同上。