[JS] 陳述式(Statement)與表達式(Expression)

陳述式(Statement)與表達式(Expression)不是特定的使用方法或技巧,而是語法觀念,所有的程式碼都可以分成這兩類型的語句。

💎 各種譯名:

  • Statement:陳述式。
  • Expression:表示式、運算式、表達式。

💎 兩者的差別:

  • 陳述式:不會回傳結果
  • 表達式:會回傳結果

💎 陳述式的種類

  • 流程控制
    • { } 區塊
    • if..else
    • switch
    • try..catch
  • 宣告
    • var
    • let
    • const
  • 函式
    • function
    • return
  • 疊代
    • for
    • while
  • 其他
    • export
    • import

詳細可以參考 MDN:
Statements and declarations

💎 表達式的種類

  • 值:單純一個數字、字串、布林、物件…等等。
  • 變數
  • 賦值(=)
  • 運算子(+, -, /, ==, ===, != ……)
  • 會回傳結果都是

💎 陳述式與表達式的混用

一段程式碼通常不會只使用其中一種方式撰寫,接著用以下範例來解說:

1
2
3
4
5
6
7
let example = function () {
if (1 == 1) {
return 1;
} else {
return 0;
}
};
  1. 這段程式碼中的陳述式

    • let
    • function
    • if..else
    • return
  2. 這段程式碼中的表達式

    • 1
    • =
    • ==
  3. 這整段程式碼雖然結合了各種陳述式和表達式,最終是將函式賦予一個變數名稱,所以是一個表達式(賦值是表達式),又稱為函式表達式,而一般宣告名稱的函式則稱為函式陳述式

參考文章:
卡斯柏 - JavaScript 表達式觀念及運用 - JS Expression