IIFE 這個奇妙的 JavaScript function 包裝?

Photo by Christopher Robin Ebbinghaus on Unsplash

有時候會看到一些大神寫的程式碼會出現奇妙的包裝,像是:

  • 神秘的括號 (((
(function(){
    blabla... 省略
})() ;



– 不知道加上去幹嘛的驚嘆號!!!

!function(){
    我又來 blabla 省略了...
}();

完全不知道這個叫做什麼!直到我乖乖打開 MDN 跟 Wikipedia 讀好 function

原來這是一個名字很長的函式 Immediately Invoked Function Expression ,中文叫做立即呼叫函式表達式

從英文的維基百科上以及網路上的性能測試上居然發現到還有其他的包裝紙!?

原來不只是括號驚嘆號,像是前方加上加號 + 、減號 - 、小波浪 ~ 這些運算子也是同樣可以讓後面帶的函式運行。

而這種方式的可以達到在定義一個函式的時候一併去執行他。且可以避免全域變數被汙染 (改動)這樣的慘案!果然大神前輩們不愧是大神前輩們,寫到的一個小東西都有學習之處阿!