iT邦幫忙

2021 iThome 鐵人賽

DAY 11
1
Modern Web

初學者跪著學JavaScript系列 第 11

初學者跪著學JavaScript Day11 : 運算子的優先順序

一日客語:中文廁所, 客語:pencil xd

說說運算子的優先順序

簡單例子

計算這條運算式?就要考慮會先從哪部份計算

考慮的部分就是優先權

優先權高的會先算計算時再思考結合律

程式碼也是這樣的行為,決定在expression中的哪一運算子優先權高先被執行,則結合律會決定相鄰的運算子有相同優先順序

若優先權順序相同,會從左到右

  • 優先權
    **的優先權排行16、*的優先權排行15、+的優先權排行是14、=的優先權排行是3

  • 運算子:+、*、+、**、=

  • JS運算子大部分是中序式
    中間是運算子,左右兩側是運算元:Operand(運算元) Opreator(運算子) Operand(運算元)
    以下運算子是二元運算




Associativity結合律:由右到左?

例如:指數 exponentiation

2**3**4

2**(3**4)

就算沒有小括號也會是一樣,因為他的結合性會從右到左

2**3**4 本身因為這個性質就會變成(2**(3**4))

如果是結合律是左到右就會變成((2**3)**4) =4096

一元運算:

  • 轉型的+
  • 負號的-
  • prefix / postfix increments (++)
  • prefix / postfix decrements (--)
  • !(not)

轉型的+

let s = '10';
console.log(+s); // 10

負號的-

100+(-10)

prefix / postfix increments (++)

let value = 10;
value++;

prefix / postfix decrements (- -)

let value = 10;
value--;

!(not)

let result = true;
!result; // false

運算式有比較多運算子時

3*100-(2 ** 2**3)+(-10) // 34


mdn:

可愛風下跪

JS運算子的優先順序:連結

JavaScript Unary Operators Explained
mdn


上一篇
初學者跪著學JavaScript Day10 : Expression 表達式/運算式 和Statement 述句
下一篇
初學者跪著學JavaScript Day12 : 麻煩的JS加法
系列文
初學者跪著學JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言