Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

本文為「JS 101:變數與流程控制」系列第 1 篇

JavaScript 表達式與陳述式:搞懂程式碼的兩種基本單位

最後更新:2026年3月19日JavaScript

寫 JavaScript 的時候,你會不斷碰到兩個詞:「表達式」和「陳述式」。

這兩個概念聽起來很學術,但其實很好懂。

搞清楚它們的差別,會幫助你理解程式碼到底在做什麼。

這篇文章會用簡單的方式,帶你一步步認識這兩個核心概念。

JavaScript 資料值是什麼?

在前一章裡,我們學過怎麼建立資料值(像是數字、文字),也學過怎麼用運算子把這些資料值組合起來,產生新的資料值。

這種「建立資料值」的做法,就是所有 JavaScript 程式的主要材料。

但光有這些資料值還不夠,你還需要知道怎麼把它們組織成一段一段的程式碼,讓程式真正運作起來。

這就是「表達式」和「陳述式」在做的事——它們決定了資料值怎麼被使用、怎麼被組合、最終怎麼讓程式做出事情來。

什麼是表達式(Expression)?

知道了資料值是程式的材料之後,我們就可以來認識「表達式」了。

簡單來說,表達式就是任何會產生一個資料值的程式碼片段。

你可以把它想像成一個「會給你答案的東西」。

來看幾個最基本的例子:

22

這就是一個表達式,它會產生數字 22 這個資料值。

"psychoanalysis"

這也是一個表達式,它會產生一段文字 "psychoanalysis"。

不過,22 本身不是資料值嗎?

其實兩者並不衝突。

當你把 22 寫在程式碼裡,JavaScript 會去執行它,然後產生 22 這個資料值。

所以它既是一個資料值,同時也是一個表達式。

像這種直接寫出來的資料值,有一個專有名詞叫做「字面值」(literal)。

表達式可以組合:用運算子串起來

表達式不只是單獨的資料值,你還可以用「運算子」把多個表達式組合在一起。

組合後的結果,本身也是一個表達式。

2 + 3

這裡 2 是一個表達式,3 也是一個表達式。

用 +(二元運算子)把它們串在一起後,2 + 3 整體也是一個表達式,它會產生 5 這個資料值。

一元運算子也是一樣的道理:

!false

false 是一個表達式,用 !(一元運算子)作用在它上面,!false 整體也是一個表達式,會產生 true。

甚至用括號包起來的表達式,也還是一個表達式:

(2 + 3)

這代表你可以不斷地組合、堆疊,建立越來越複雜的計算。

表達式的巢狀結構:表達式裡面還有表達式

表達式有一個很漂亮的特性:表達式裡面可以包含其他表達式。

這就像人類語言裡的句子結構一樣。

一個句子裡面可以有子句,子句裡面又可以有更小的子句。

程式碼也是這樣:

(2 + 3) * (10 - 4)

(2 + 3) * (10 - 4) 整體是一個乘法表達式。

乘號左邊的 (2 + 3) 是一個表達式,右邊的 (10 - 4) 也是一個表達式。

而 2、3、10、4 各自也都是表達式。

這種層層嵌套的結構,讓你可以用簡潔的方式描述非常複雜的計算邏輯。

什麼是陳述式(Statement)?

前面提到,表達式是會產生資料值的程式碼片段,但它只是片段,不是一個完整的指令。

陳述式(Statement)則是 JavaScript 實際會去執行的一個完整指令。

而一個程式,就是由一連串的陳述式組成的。

最簡單的陳述式,就是在表達式後面加上分號:

1;
!false;

分號的作用是告訴 JavaScript:「這是一個完整的指令,到這裡為止。」

沒有分號的 1 只是一個表達式,JavaScript 不知道這算不算一個完整的指令、後面還有沒有東西。

加上分號變成 1; 之後,它就變成一個陳述式,JavaScript 會把它當作一個獨立的指令來執行。

上面的程式碼有兩個分號,所以就是兩個陳述式,合在一起就構成了一個合法的 JavaScript 程式。

什麼是副作用(Side Effect)?

不過,上面那個程式雖然合法,執行之後你什麼都看不到。

為什麼?

因為 1; 這個陳述式雖然產生了資料值 1,但產生完就丟掉了,沒有人去用它。

!false; 也一樣,產生了 true,然後就沒了。

一個陳述式如果沒有對外界產生影響,就等於什麼都沒做。

什麼意思呢?

1; 這個陳述式執行之後,JavaScript 確實產生了資料值 1,但產生完就立刻丟掉了。

它沒有把 1 顯示在螢幕上,也沒有把 1 存起來留給後面的程式碼使用。

對外界來說,這個陳述式就像從來沒有執行過一樣。

這種「對外界產生的影響」有一個專有名詞,叫做副作用(side effect)。

那什麼算是副作用呢?

以目前的學習進度來說,最直覺的例子就是「在螢幕上顯示某些內容」。

當你寫的程式碼讓螢幕上多了一行字,那就是對外界產生了改變,這就是副作用。

之後學到更多語法時,你會認識其他種類的副作用,例如改變程式內部儲存的資料。

但現在只要記住一個重點就好:陳述式光是產生資料值還不夠,要帶有副作用,才能真正做出事情來。

JavaScript 分號要不要加?

在 JavaScript 裡,大部分陳述式的結尾都要加分號 ;。

不過 JavaScript 有一個機制,在某些情況下可以幫你自動補上分號。

聽起來很方便,但問題是:什麼時候可以省略、什麼時候不行,規則很複雜,而且容易出錯。

如果省略分號,有時候上下兩行程式碼會被 JavaScript 誤認為是同一行,導致意想不到的錯誤。

所以,給初學者的建議很簡單:每個陳述式後面都加上分號。

等你對 JavaScript 更熟悉之後,再去研究哪些情況可以安全地省略。

小結

這篇文章介紹了 JavaScript 裡兩個最基本的程式碼單位:

  • 表達式:會產生一個資料值的程式碼片段,例如 22、"hello"、2 + 3。
  • 陳述式:JavaScript 實際會去執行的一個完整指令,程式就是由一連串陳述式組成的。
  • 副作用:陳述式對外界產生的影響,例如在螢幕上顯示內容。
  • 分號:建議初學者在每個陳述式後面都加上分號,避免自動補分號機制帶來的問題。

搞懂表達式和陳述式的差別,是理解 JavaScript 程式結構的第一步。

下一篇JavaScript 變數的核心概念:綁定(Binding)
目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

JavaScript

目錄

  • JavaScript 資料值是什麼?
  • 什麼是表達式(Expression)?
  • 表達式可以組合:用運算子串起來
  • 表達式的巢狀結構:表達式裡面還有表達式
  • 什麼是陳述式(Statement)?
  • 什麼是副作用(Side Effect)?
  • JavaScript 分號要不要加?
  • 小結