2024-09-06 JavaScript 系列六:第3課 ── 認識匿名函式
JavaScript 系列六:第3課 ── 認識匿名函式
課程目標
能夠從陣列刪除元素
認識 for in 迴圈寫法
認識匿名函式(anonymous function)
課程內容
在 JavaScript 中,刪除陣列元素的方法,有超多種
這邊介紹一種根據索引刪除的方法
1 | var fruits = ["apple", "banana", "orange"]; |
.splice()
函式第一個傳索引,第二個傳要刪的數量,通常就傳 1 就好了(一次刪一個即可)
實務上,你就根據情況,隨便找一個能用的方式,來操作陣列就對了
之前我們介紹過 for of 的寫法,很簡單好用
1 | var fruits = ["apple", "banana", "orange"]; |
這邊多介紹一個 for in 的寫法,需要索引時可以用
1 | var fruits = ["apple", "banana", "orange"]; |
最後來介紹匿名函式(anonymous function)
聽起來很玄,但其實就只是沒有名字的函式而已
以下是有名字的函式
1 | function hello1() |
以下是沒有名字的函式
1 | <button> |
1 | var button = document.querySelector('button'); |
動態宣告一個函式,然後直接指派、使用,就是匿名函式
在 JavaScript 中,很多時候,有些小任務,需要宣告新函式來用,但又懶得去設計命名那些的
這時候就可以用匿名函式來節省時間
雖然看起來有點不習慣、有點奇怪
但在實務上,非常多地方,其實都會用到匿名函式,算是 JavaScript 非常好用的一個功能、特性
課後作業
接續上一課作業,這次來實作「刪除事項」
請更新 render 函式,讓 UI 看起來像這樣
1 | <ul> |
然後在過程中,動態產生 button 的時候,將 .onclick 屬性設定為一個 arrow function
這個 arrow function 不能直接更新 DOM,而是先去更新 data model,接著 render,用這種方式間接更新 DOM
1 | deleteBtn.onclick = () => { |
提示:由於 javascript 中 hoisting 的特性,for loop 拿到的索引,在裡面的 arrow function 中使用,很容易抓錯
關於索引一直拿不到的問題,請參閱這邊我跟 birdie 同學的討論
https://codelove.tw/@birdie2019/post/2anbka
文章取自: https://codelove.tw/@howtomakeaturn/post/Aq5V0x
by 站長阿川