JS逗號運算子的用法詳解

2021-07-11 11:15:32 字數 3475 閱讀 4819

一、逗號運算子的特性及作用 

逗號運算子的作用是將若干表示式連線起來。它的優先級別在所有運算子中是最低的,結合方向是"自左至右"的。 (即:逗號運算子:是按順序執行表示式,並且獲得右邊表示式的值。)

如: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。對於第...