iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
自我挑戰組

複習 JavaScript 核心概念系列 第 14 篇

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

  • 分享至 

  • xImage
  •  

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

運算子的種類

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

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

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


運算子的優先性(Operator Precedence)

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

  1. 成員訪問:如 . 和 [] 用於訪問對象的屬性和方法。例如:myObject.name、myList[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) }}
直播中

尚未有邦友留言

立即登入留言