立即執行函數
定義:此類函數沒有聲明,在一次執行過後即釋放。適合做初始化工作。
作用:造出一個函數作用域,防止污染全局變量,它既不會提升,也不會污染全局對象,儘量的把功能封裝在函數中
首先得知道,
- 只有表達式才能被執行符號執行
- 被執行符號執行的表達式他的名字會被自動忽略
當函數成爲一個表達式時,它既不會提升,也不會污染全局對象。將函數變爲一個函數表達式的方式之一,將函數用小括號括起來。
然而,這樣一來,函數無法通過名稱調用。如果書寫一個函數表達式,然後將立即調用,該函數稱之爲立即執行函數 IIFE(Imdiately Invoked Function Expression)。
由於大部分情況下,函數表達式的函數名沒有實際意義,因此,可以省略函數名。沒有名字的函數,稱之爲匿名函數
//w3c建議寫法:
(function () {
var a = 1,
b = 2,
c = 3;
console.log(a, b, c);
}());
//2.
(function (){
var a = 1,
b = 2,
c = 3;
console.log(a, b, c);
})();
上面說到了只有表達式才能被執行符號執行負責就會報錯,但是有這個特殊情況
function test(a, b, c,d) {
console.log(a + b + C + d) ;
}(1,2,3,4);
這裏他不會報錯,但也不會執行…他會分開執行
function test(a, b, c,d) {
console.log(a + b + C + d) ;
}
(1,2,3,4);
tip:>(免費獲取最新完整前端課程關注vx公衆號:前端拓路者coder,回覆:資料
如果這個文章對你有用的話,歡迎點贊轉發關注,讓更多的小夥伴看到呀,畢竟分享是一個程序員最基本的美德!!!
如果有不對的請大佬指教)