js函數聲明外面使用小括號括起來再接一個小括號的寫法
(function(){})();
(function(){}());
!function(){}();
總結ps:意思將函數聲明變成,直接執行的函數表達式.
上面三個語句都是在運算符相關上下文中,所以都是表達式,就可以強制調用了,下面做一下分析: (function(){})(),
(function(){})是一個表達式,會強制其理解成函數直接量方式,也就是表達式方式創建函數,
(function(){})它會返回函數對象的引用,最后使用小括號()調用此函數。
(function(){}()),
如果不用外面包裹的小括號,{}就會理解為復合語句,
那么function(){}就被理解為函數聲明,但是沒有標識符,所以會報錯,
使用小括號以后,就會變成表達式,也會被理解為直接量方式。
!function(){}(),
原理同上,!也是一個運算符,所以在原理同上。