一、逗號運算子的特性及作用
逗號運算子的作用是將若干表示式連線起來。它的優先級別在所有運算子中是最低的,結合方向是"自左至右"的。 (即:逗號運算子:是按順序執行表示式,並且獲得右邊表示式的值。)
如:3*3,4*4//16
二、逗號表示式
逗號表示式的一般形式是:表示式1,表示式2,表示式3……表示式n
逗號表示式的求解過程是:先計算表示式1的值,再計算表示式2的值,……一直計算到表示式n的值。最後整個逗號表示式的值是表示式n的值。
看下面幾個例子:
x=8*2,x*4 /*整個表示式的值為64,x的值為16*/
(x=8*2,x*4),x*2 /*整個表示式的值為32,x的值為16*/
(x=(x=8*2,x*4)),x*2/*整個表示式的值為128,x的值為64*/
x=(z=5,5*2) /*整個表示式為賦值表示式,它的值為10,z的值為5*/
逗號表示式用的地方不太多,一般情況是在給迴圈變數賦初值時才用得到。所以程式中並不是所有的逗號都要看成逗號運算子,尤其是在函式呼叫時,各個引數是用逗號隔開的,這時逗號就不是逗號運算子。
運算子使它兩邊的表示式以從左到右的順序被執行,並獲得右邊表示式的值。運算子最普通的用途是在 for 迴圈的遞增表示式中使用。例如:
for (i = 0; i < 10; i++, j++)
每次通過迴圈的末端時, for 語句只允許單個表示式被執行。, 運算子被用來允許多個表示式被當作單個表示式,從而規避該限制。
三、運算子按照優先順序的不同從高到低排列如下:
優先順序運算型別
關聯性運算子
19圓括號
n/a( … )
18成員訪問
從左到右
… . …
需計算的成員訪問
從左到右
… [ … ]
new
(帶引數列表)
n/anew … ( … )
17函式呼叫
從左到右
… ( … )
new (無引數列表)
從右到左
new …
16後置遞增(運算子在後)
n/a… ++
後置遞減(運算子在後)
n/a… --
15邏輯非
從右到左
! …
按位非從右到左
~ …
一元加法
從右到左
+ …
一元減法
從右到左
- …
前置遞增
從右到左
++ …
前置遞減
從右到左
-- …
typeof
從右到左
typeof …
void
從右到左
void …
delete
從右到左
delete …
14乘法
從左到右
… * …
除法從左到右
… / …
取模從左到右
… % …
13加法
從左到右
… + …
減法從左到右
… - …
12按位左移
從左到右
… << …
按位右移
從左到右
… >> …
無符號右移
從左到右
… >>> …
11小於
從左到右
… < …
小於等於
從左到右
… <= …
大於從左到右
… > …
大於等於
從左到右
… >= …
in從左到右
… in …
instanceof
從左到右
… instanceof …
10等號
從左到右
… == …
非等號從左到右
… != …
全等號從左到右
… === …
非全等號
從左到右
… !== …
9按位與
從左到右
… & …
8按位異或
從左到右
… ^ …
7按位或
從左到右
… | …
6邏輯與
從左到右
… && …
5邏輯或
從左到右
… || …
4條件運算子
從右到左
… ? … : …
3賦值
從右到左
… = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2yield
從右到左
yield …
yield*
從右到左
yield* …
1spread
n/a...
…0逗號
從左到右
… , …
JS逗號運算子(,)詳解
js教程逗號運算子是二元運算子,它能夠先執行運算子左側的運算元,然後再執行右側的運算元,最後返回右側運算元的值。本篇文章由泉州seowww.234yp.com 整理發布,js教程 www.234yp.com article 188242.html 謝謝合作!逗號運算子可以實現連續運算,如多個變數連續...
js的逗號運算子
複習陣列的reduce方法時,偶然碰到的乙個問題,起初以為是es6箭頭函式的寫法,查了mdn文件,也沒找到。後來才發現是js的逗號運算子 哭.const objlikearr name jim age 18 single true const frompairs pairs pairs.reduce...
逗號運算子
在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後乙個表示式的值。假設b 2,c 7,d 5,a1 b,c d 3 a2 b,c d 3 對於第一行 有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d 3,為8,所以a1 8。對於第...