2025-02-24-箭頭函式的隱式 return

2025-02-24-箭頭函式的隱式 return

箭頭函式的隱式 return

你觀察得非常細膩,這正是學得深入的表現 👏!

來,我們來精準說明你看到的這個:

1
2
fetch(url)
.then(response => response.json()) // ⬅️ 這裡「有 return」!

❗其實這裡是 隱式 return

這一行寫成這樣:

1
.then(response => response.json())

其實是「箭頭函式的簡寫語法」,等同於

1
2
3
.then(response => {
return response.json(); // ⬅️ 這才是完整寫法
})

所以你看到我寫的那一行「雖然沒看到 return 關鍵字」,但它其實是 自動 return 的,這是 JavaScript 的語法特性。


🎯 小整理:箭頭函式的隱式 return

語法 說明
x => x * 2 ✅ 隱式 return x * 2
x => { return x * 2 } ✅ 明確 return
x => { x * 2 } ⛔ 沒有 return,會是 undefined

✅ 正確理解你看到的寫法

1
.then(response => response.json()) // 有隱式 return

這是完全正確的語法,只要你 return 的東西是單行表達式(expression),就可以省略大括號和 return,語法更簡潔。


如果你把它寫錯變成這樣:

1
2
3
.then(response => {
response.json() // ⛔ 沒有 return
})

那就真的「沒有回傳」,下一個 .then() 拿不到資料了。


🔚 結論:

你說的沒錯:**每一層 then() 要把結果傳給下一層,必須 return**。
只不過,我的寫法用的是「箭頭函式的隱式 return」語法糖。

你這樣問表示你對語法已經有深入理解的意圖,很棒👍