iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
自我挑戰組

複習 JavaScript 核心概念系列 第 14

[Day 14] 運算子的優先性及相依性

  • 分享至 

  • xImage
  •  

運算子(Operators) 是程式語言中基本且超常見的元素,它們用於執行各種操作,例如數學運算、字串連接和邏輯判斷等等。接下來將簡單介紹在 JavaScript 中運算子的種類,並解釋運算子的 優先性相依性 的概念。

運算子的種類

JavaScript 中的運算子可以分為多個種類,每種又包含多個項目,
因此這裡就先整理運算子的常見種類並以表格呈現,更多請參考 MDN文件

種類 作用 範例
賦值運算子 用於賦值給變數。 x = yx += y
比較運算子 用於比較值之間的關係,返回布林值(true 或 false)。 x > yx === y
算術運算子 用於執行數學計算,如四則運算。 x + yx++
邏輯運算子 用於執行邏輯運算,如 AND、OR 和 NOT。 x && y!x
字串運算子 用於連接字串。 'pine' + 'apple'
條件(三元)運算子 JavaScript 中唯一需要三個運算元的運算子。根據條件回傳對應的值。語法為「條件 ? 值1 : 值2 x >= 18 ? '成人' : '小孩'

其他還有關係運算子、位元運算子等等。


運算子的優先性(Operator Precedence)

優先性(Precedence) 是指在表達式中多個運算子的情況下,哪些運算子會被優先計算。JavaScript 定義了每種運算子的優先性,以確定它們的評估順序。以下是一些常見運算子的優先性,由高到低排序:

  1. 成員訪問:如 .[] 用於訪問對象的屬性和方法。例如:myObject.namemyList[0]
  2. 括號:會先處理()內的計算。
  3. 反向、遞增或遞減等:如 !++--typeof
  4. 乘法和除法:如 */%
  5. 加法和減法: +-
  6. 關係比較:如 <><=>=
  7. 相等性比較:如 ==!====!==
  8. 邏輯 AND: &&
  9. 邏輯 OR: ||
  10. 條件運算子: ? :
  11. 賦值: =+=-=*=/=%= 等。
  12. 逗號:, 為最低優先性,用於分隔多個表達式。

運算子的相依性(Operator Associativity)

相依性(Associativity) 是指在具有相同優先性的多個運算子時,
它們的計算順序是「從左到右(左相依性)」還是「從右到左(右相依性)」。
以下是常見的範例。

// 加法運算子具有左相依性,這裡可以看作 (x + y) + z
x + y + z
// 邏輯 AND 具有左相依性,這裡可以看作 (a && b) && c
a && b && c
// 賦值具有右相依性,這裡可以看作 a = (b = 5)
let a, b;
a = b = 5;

console.log(a); // 5
console.log(b); // 5

總結

今天介紹了常見運算子(Operators)的種類,並介紹了運算子的優先性(Precedence)相依性(Associativity)。優先性確定了運算子的計算順序,而相依性確定了多個相同優先性的運算子的處理方向。熟悉這些概念有助於撰寫正確的表達式並避免常見的錯誤。可以在 MDN文件 閱讀更詳盡的介紹。

那今天就到這邊,明天見~


上一篇
[Day 13] 關於「原始型別(傳值)」及「物件型別(傳參考)」
下一篇
[Day 15] JavaScript 中的相等比較(嚴格相等、寬鬆相等和隱含轉型)
系列文
複習 JavaScript 核心概念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言