iT邦幫忙

2023 iThome 鐵人賽

DAY 18
1
Software Development

再騙小心沒朋友🥵 用LIFF實作LINE整人工具系列 第 18

[Day18] 不懂JavaScript 只好等著被整😔 箭頭函式篇

  • 分享至 

  • xImage
  •  

箭頭函式是從 JavaScript ES6版本開始出現的新概念,功能是把函式(function)的語法簡化,讓我們可以少打很多字,也可以提高語法的可讀性,簡單來說就是 function 的語法糖。可能很多人會想說學這個跟整人有什麼關係,其實LIFF API用了很多箭頭函式的寫法,怕看不懂所以還是講一下好了。

函式(function)的寫法

在 JavaScript 中函式的寫法不止一種,即使是普通函式也有兩種寫法,下面是兩種普通函式的語法和架構:

  • 第一種普通函式(函式陳述式)

    最常用的函式寫法,用 function 當開頭宣告函式。範例如下:
function calc(n){
	n = n + 1;
	return n*n;
}
  • 第二種普通函式(函式表達式)

    函式表達式(Function Expressions)會將具名或不具名的函式以指派給變數的方式宣告,用 let、var、const 宣告都可以:
let calc = function(n){
	n = n + 1;
	return n*n;
}

箭頭函式的寫法

箭頭函式有三個重點:

  1. 把 function 拿掉
  2. 函式傳入參數{}區域語法之間加入一個肥箭頭=>(不是瘦箭頭->
  3. 分成可省略{}和不可省略{}兩種

因為可省略{}和不可省略{}的箭頭函式寫不同,所以分兩部分介紹:

  • 不可省略{}的箭頭函式

    這種寫法不能省略{}的原因是除了 return 回傳值之外還有別的程式碼包含在{}區塊中,因此無法省略{}。實際範例如下:
var calculate = (n) => {
	n = n + 1;
	return n*n;
};

  • 可省略{}的箭頭函式
    當函式內容只有一行 return 回傳值的時候就可以省略{}和 return ,如果都不省略的話也可以,但是要省略的話就要兩個一起省略,不然會導致沒有回傳值的問題。
var calculate = (n) => n*n;


也可以把回傳值用()包起來:

var calculate = (n) => (n*n);


如果只省略 return 沒省略{}會怎樣?

雖然這樣寫函式不會出現語法錯誤,但是呼叫函式時不會出現回傳值,所以要記得可省略{}的箭頭函式的寫法就是全有全無制,要嘛就全部省略要嘛就都不要省略。


上一篇
[Day17] 不懂JavaScript 只好等著被整😔 ES6 新變數命名規則
下一篇
[Day19] 不懂JavaScript 只好等著被整😔 Promise篇
系列文
再騙小心沒朋友🥵 用LIFF實作LINE整人工具30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言