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

這篇來簡單看一下這些東西是什麼。
表達式的特徵就是:會回傳一個值。 也就是一段程式碼能夠形成一個值,就隸屬於表達式。
例如 1+1 使用了 + 運算子,會得到 2,所以屬於表達式。
接下來在 console 內輸入一些東西看看:

這些算數、運算、字串、function 等都會回傳值,所以都算表達式。
陳述式與表達式相反,會做某些事情但不會回傳值。
在 MDN 中的陳述式分為:
if...else、continue、try...catch ... etcvar、const、let。class、return、function ... etcdo...while、while、for ... etcexport、import ... etc函式表達式是一種將 function 指派給變數的一種方式,範例如下:
const fn = function(){
    console.log("Hello World")
}
// 或是使用箭頭函數
const fn = () => {
    console.log("Hello World")
}
因為前面使用 const、let、var 宣告,所以要特別注意提升(Hosting)的行為,另外必須使用匿名函式(Anonymous Function)。
平常我們使用函式的方法就是函式陳述式,如下:
function fn(){
    console.log("Hello World")
}
這段函式也會因為 Hosting 的緣故存到記憶體,因此將 fn() 寫在前面也不會出錯。