Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

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

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

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

本文為「JS 101:資料型別」系列第 5 篇

JavaScript 算術運算入門:加減乘除與運算子優先序

最後更新:2026年2月11日JavaScript

上一篇我們認識了 JavaScript 的數字型態,知道怎麼寫出數字值、以及 JavaScript 怎麼用 64 位元來儲存它們。

但光有數字還不夠,我們需要拿這些數字來「做事」——加、減、乘、除。

這就是算術運算。

這篇文章會帶你了解:JavaScript 的算術怎麼寫、運算子是什麼、以及當多個運算同時出現時,JavaScript 會怎麼決定先算哪個。

什麼是算術運算?

算術運算就是拿兩個數字值來計算,然後產生一個新的數字值。

在 JavaScript 裡,寫法跟你在數學課看到的幾乎一樣:

100 + 4 * 11

這行程式碼裡有兩個符號:+ 和 *。

什麼是運算子(Operator)?

這些 +、* 符號的作用,就是告訴 JavaScript:「請對旁邊的兩個數字做某種計算」。

+ 告訴 JavaScript 要做加法,* 告訴 JavaScript 要做乘法。

這類符號有一個專門的名稱,叫做運算子(Operator)。

你可能會覺得奇怪:「運算」不是應該叫 Calculate 嗎,怎麼叫 Operator?

你可以把它想成以前電信局的「接線生(Operator)」。

接線生的工作是:拿起左邊的一條線,連結到右邊的一個插孔,讓通訊發生。

程式裡的 + 也是一樣的角色——它把左邊的 100 和右邊的 4 拿起來,操作(Operate)它們,最後連結出一個結果 104。

所以 Operator 的意思比較接近「把東西拿起來處理並連結的中間人」,中文習慣翻譯成「運算子」。

這篇文章介紹的 +、-、*、/、% 都是專門處理數字計算的運算子,但運算子不是只有這些。

在後面的文章裡,你還會碰到用來比較大小的運算子、用來處理文字的運算子等等。

只要記住:運算子就是那個把旁邊的值拿起來處理、然後產生新結果的符號,不管它處理的是數字、文字還是其他東西。

運算子的用法很固定:放在兩個資料值之間,JavaScript 就會對這兩個值進行計算,然後產生一個新的值。

4 * 11    // 把 4 和 11 相乘,產生新的值 44
100 + 44  // 把 100 和 44 相加,產生新的值 144

運算子的優先序:JavaScript 先算哪個?

回頭看一下這行程式碼:

100 + 4 * 11

這裡有一個問題:JavaScript 會怎麼算?

是先算 100 + 4 得到 104,再乘以 11?

還是先算 4 * 11 得到 44,再加上 100?

答案是:先乘後加。

但 JavaScript 是怎麼知道要先算乘法的?

因為每個運算子都有一個內建的「優先序(Precedence)」,用來決定誰先被計算。

優先序高的運算子會先被計算,優先序低的就等前面算完才輪到它。

在 JavaScript 裡,乘法 * 的優先序比加法 + 高,所以會先算 4 * 11 得到 44,再算 100 + 44,最後得到 144。

這跟你在數學課學到的「先乘除後加減」是一樣的規則。

完整的優先序規則

JavaScript 的算術運算子有以下幾種:

運算子功能範例結果優先序
*乘法10 * 330高
/除法10 / 33.333...高
%餘數10 % 31高
+加法10 + 313低
-減法10 - 37低
功能乘法
範例10 * 3
結果30
優先序高
功能除法
範例10 / 3
結果3.333...
優先序高
功能餘數
範例10 % 3
結果1
優先序高
功能加法
範例10 + 3
結果13
優先序低
功能減法
範例10 - 3
結果7
優先序低

優先序的規則是這樣的:

*、/、% 的優先序相同,都比 + 和 - 高。

也就是說,JavaScript 會先算乘法、除法、餘數,再算加法和減法。

那如果一行程式碼裡,出現了好幾個優先序相同的運算子呢?

比如 1 - 2 + 1,- 和 + 的優先序一樣高,JavaScript 沒辦法用優先序來決定先算哪個。

這時候 JavaScript 有一條內建的規則:從左邊開始,依序往右計算:

1 - 2 + 1
// 先算 1 - 2 = -1
// 再算 -1 + 1 = 0

不確定順序?加括號就對了

不過,你不需要把這些規則全部背起來。

如果你想讓某個運算先算,只要加上括號就好:

(100 + 4) * 11    // 先算括號裡的 100 + 4 = 104,再乘以 11,得到 1144

括號裡的運算一定會先被執行,這點也跟數學一模一樣。

如果不確定運算順序,加上括號就好,這樣不管是你自己還是別人讀你的程式碼,都能一眼看出來先算什麼。

餘數運算子(%)是什麼?

在上面的表格裡,你可能注意到一個不太熟悉的運算子:%。

這不是「百分比」的意思,在 JavaScript 裡,% 是餘數運算子,也常被稱為 Mod 運算子(Modulo)。

你可能會好奇:Modulo 這個詞跟「餘數」有什麼關係?

在英文裡,Mod- 這個詞根代表「測量(Measure)」。

想像你手上有一條長繩子,然後你拿一把固定長度的尺去量它。

你能量出完整的一段、兩段、三段……但到最後,總會剩下一小截「量不滿一整把尺」的繩子。

那一小截,就是 Modulo 的結果——測量之後剩下的零頭。

它的功能是:算出兩個數字相除之後的餘數。

314 % 100   // 314 ÷ 100 = 3 餘 14,所以結果是 14
144 % 12    // 144 ÷ 12 = 12 餘 0,所以結果是 0

換句話說,X % Y 就是在問:「X 除以 Y 之後,剩下多少?」

舉個生活中的例子:如果你有 314 元,要買每個 100 元的東西,買完之後你手上還剩多少錢?

314 % 100   // 剩 14 元

餘數運算子的優先序跟 * 和 / 相同,都比 + 和 - 高。

小結

讓我們整理一下這篇文章的重點:

  1. 算術運算就是拿兩個數字值計算,產生一個新的數字值。
  2. +、-、*、/、% 這些符號叫做運算子(Operator),放在兩個數字之間就能進行運算。
  3. 運算子有優先序:*、/、% 會先算,+、- 後算,跟數學規則一樣。
  4. 優先序相同的運算子,從左到右依序計算。
  5. 不確定順序的時候,加括號就對了。
  6. % 是餘數運算子,用來算「除完之後剩多少」。
上一篇為什麼 JavaScript 的 || 和 && 不只是布林運算?——從「短路求值」談起
下一篇初學者指南:深入了解 JavaScript 中的 == 與 === 比較運算符
目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

JavaScript

目錄

  • 什麼是算術運算?
  • 什麼是運算子(Operator)?
  • 運算子的優先序:JavaScript 先算哪個?
  • 完整的優先序規則
  • 不確定順序?加括號就對了
  • 餘數運算子(%)是什麼?
  • 小結