iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

豆芽班日記系列 第 13

Day13 立即執行函式 IIFE

  • 分享至 

  • xImage
  •  

技術筆記

講完了表達式跟陳述式,順勢來講立即執行函式吧!

立即執行函式(IIFE)

  • 邏輯
    因為括號是具有最高優先權的運算子,所以在函式前加上括號,可以讓其優先被執行
  • 特點
    • 創造後立即被執行
    • 無法被呼叫
    • IIFE為函式表達式
  • 具名函式的IIFE
(function hello(){
console.log('hello')
}())  //hello

//也可將小括號往後擺
(function hello(){
console.log('hello')
})()  //hello
  • 匿名函式的IFEE
(function (){
console.log('hi')
}())  //hi

//同樣也可將小括號往後擺
(function (){
console.log('hi')
}())  //hi
  • why IIFE?
    希望將變數寫完馬上被執行,但又不想要影響到全域變數,就會用IIFE將變數包在函式內,因執行環境不同,執行完該變數即無法被取用,能防止函式裡外同名變數互相影響
var snack = '麥當勞';
(function(name){
	var snack = '摩斯漢堡';
	console.log(name + '今天想吃' + snack);
}('樂咖'));
console.log(snack)

//'樂咖今天想吃摩斯漢堡'
//'麥當勞'
  • 最後小提醒:如果連續使用兩個IIFE要在每個IIFE結尾加上分號來做區隔,否則會發生合在一起執行而造成錯誤的情況

心得

學習起來,覺得觀念很簡單易懂,加上括號就可以讓函式立即被執行,但對我來說,困難的是加了一堆括號後,會變得很難閱讀,看到函式包了一堆括號會讓我害怕...還要多多認識他才行。

參考資料

童言童語

努力看完天書後,來點輕鬆的吧!分享我兒子的童言童語,調劑身心一下

5歲樂咖+2歲嗨啾 = 我的神奇寶貝 皮咖啾

2022/04/26
阿咖不小心把我網路用光⋯
我:齁還有15天我要怎麼活啦?!
咖:第16天你就不活了嗎?
我:???????

星期天中午
爸:你吃完都沒有收碗勒
咖:對啊
爸:你還敢講
咖:我真的不敢講


上一篇
Day 12 函式陳述式&函式表達式
下一篇
Day14 高階函式
系列文
豆芽班日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言