iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

菜鳥前端修練之旅系列 第 18

Day 18 | 表達式與陳述式

  • 分享至 

  • xImage
  •  

閱讀文章時常常會看到表達式、陳述式、函式表達式、函式陳述式,搞得我很黑人問號。

這篇來簡單看一下這些東西是什麼。

表達式(Expressions)

表達式的特徵就是:會回傳一個值。 也就是一段程式碼能夠形成一個值,就隸屬於表達式。

例如 1+1 使用了 + 運算子,會得到 2,所以屬於表達式。

接下來在 console 內輸入一些東西看看:

這些算數、運算、字串、function 等都會回傳值,所以都算表達式。

陳述式(Statement)

陳述式與表達式相反,會做某些事情但不會回傳值

MDN 中的陳述式分為:

  • 流程控制:if...elsecontinuetry...catch ... etc
  • 宣告:varconstlet
  • 函數與類別:classreturnfunction ... etc
  • 迭代:do...whilewhilefor ... etc
  • 其他:exportimport ... etc

函式表達式(Function Expression)

函式表達式是一種將 function 指派給變數的一種方式,範例如下:

const fn = function(){
    console.log("Hello World")
}

// 或是使用箭頭函數
const fn = () => {
    console.log("Hello World")
}

因為前面使用 constletvar 宣告,所以要特別注意提升(Hosting)的行為,另外必須使用匿名函式(Anonymous Function)。

函式陳述式(Function Statement)

平常我們使用函式的方法就是函式陳述式,如下:

function fn(){
    console.log("Hello World")
}

這段函式也會因為 Hosting 的緣故存到記憶體,因此將 fn() 寫在前面也不會出錯。

參考資料


上一篇
Day 17 | CSS Selectors
下一篇
Day 19 | Debounce & Throttle
系列文
菜鳥前端修練之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言