亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

淺談JS中逗號運算符的用法

2019-11-20 09:43:55
字體:
來源:轉載
供稿:網友

注意:

一、由于目前正在功讀JavaScript技術,所以這里拿JavaScript為例。你可以自己在PHP中試試。

二、JavaScript語法比較復雜,因此拿JavaScript做舉例。

最近重新閱讀JavaScript權威指南這本書,應該說很認真的閱讀,于是便想把所學的東西多記錄下來。后

面本人將逐步寫上更多關于本書的文章。

本文的理論知識來自于JavaScript權威指南,我這里做一下整理,或者說叫筆記。

如果你的基礎夠好的話,完全理解不成問題,但是如果讀得有些郁悶的話,可以加我的QQ:76863715

閱讀本文的前提是,你能區分什么是表達式,什么是語句。還有明確運算符和運算數多是些啥東西。所

謂的表達式就是―― 一個JavaScript的“短語“,JavaScript的解釋器可以計算它,從而生成一個值。表達式可

以分為以下三種:

1)直接量,如1.7是數字直接量、"JavaScript權威指南"是一個字符串直接量等。

2) 變量

直接量表達式的值就是這個直接量本身,變量表達式的值則是該變量所存放或引用的值。

3) 可以“合并”上面提到的“簡單”表達式來創建為比較復雜的表達式。例如1.7是表達式,i也是表達式,下面的代碼所示的同樣也是(也可以叫)表達式:

i + 1.7

上面這個表達式的值是兩個簡單表達式(一個變量表達式和一個簡單表達式)的和。在此例中,“+”是一個運算符,用于將兩個簡單表達式合并起來以組成一個復雜的表達式。

運算數的個數

可 以根據運算符需要的運算數的個數對運算符進行分類,大多數運算符都是二元運算符,它們把兩個“表達式”合并成一個復雜的表達式。簡而言之,就是它有兩個運 算數。此外,JavaScript還支持大量的一元運算符,它能將一個表達式轉換成另一個更復雜的表達式。如表達式-3中,運算符“-”就是一元運算符, 它執行操作是對運算數取反。

JavaScript還支持三元操作符“?:”,它可以將三個表達式合并為一個復雜的表達式。

OK,下面開始講解逗號運算符。

逗號運算符,它將先計算左邊的參數,再計算右邊的參數值。然后返回最右邊參數的值。

原書舉的例子不太好,無法解釋上面那句話,這里另外提供一個:

<script>var a = 10, b = 20;function CommaTest(){return a++, b++, 10;}var c = CommaTest();alert(a); // 返回11alert(b); // 返回21alert(c); // 返回10</script>

變量c的值是函數CommaTest返回的值,而a和b多加1了。

逗號運算符和函數調用運算符的沖突

在JavaScript中,函數調用確實是函數調用運算符。它很特殊,因為其它編程語言資料中多從來沒有這個叫法的。然后,(才是)它沒有固定數目的運算數。

函數調用運算符的第一個參數是一個函數名或者是一個引用函數的表達式,其后是括號()。括號中間可以是數目不定的運算符,這些運算數可以是任意的表達式,它們之間用逗號隔開。

函數調用運算符將計算它的每一個運算數,第一個運算數指定為函數名(括號前),而括號中間的所有運算數的值將傳遞給這個函數作為函數的參數。

例如:

document.close()Math.sin(x)alert("Welcome " + name)Date.UTC(2000, 11, 31, 23, 59, 59)funcs.f(funcs.args[0], funcs.args[1])

知道了調用函數運算符后,我們舉個例子說明關于如何處理它們沖突的事。

<script>alert(2*5, 2*4); // 輸出10</script>

上面這段代碼輸出10,但是如果根據逗號運算符的原理來解釋的話,那應該是輸出8才對。為什么呢?

因為逗號運算符在JavaScript在的優先級是最底的,記住這一點非常有用。所以函數調用運算符將先于逗號運算符運行。結果alert函數輸出第一個參數的值。將上面的代碼修改成如下所示即可。

<script>alert((2*5, 2*4)); // 返回8</script>

逗號運算符和賦值運算賦的沖突

在JavaScript中,逗號運算符的優先級比賦值運算符還要底。請看下面的代碼。

<script>var a = 20;var b = ++a,10;alert(b);</script>

這段代碼似乎不能運行,可能是由于賦值運算符優先于逗號表達式運行,如果將代碼改成

<script>var a = 20;var b = (++a,10);alert(b);</script>

即可了。

上面說到的“可能”我們這里做一下解釋,這是本人的一些看法,不一定權威。

逗號運算符要求它的運算數是一個復雜的表達式或簡單的表達式(如變量或直接量),但由于賦值運算符優先于逗號運算符執行,因此變成左邊不是一個運算數或一個表達式,而是一個含有var關鍵字的語句

之前不能執行的代碼可以看成如下代碼:

<script>var a = 20;(var b = ++a),10;alert(b);</script>

語句中有表達式語句,但不是所有的語句都是表達式。

#################################################

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

逗號運算符的作用是將若干表達式連接起來。它的優先級別在所有運算符中是最低的,結合方向是"自左至右"的。

如:3*3,4*4

二、逗號表達式

逗號表達式的一般形式是:表達式1,表達式2,表達式3……表達式n

逗號表達式的求解過程是:先計算表達式1的值,再計算表達式2的值,……一直計算到表達式n的值。最后整個逗號表達式的值是表達式n的值。

看下面幾個例子:

x=8*2,x*4 /*整個表達式的值為64,x的值為16*/

(x=8*2,x*4),x*2 /*整個表達式的值為128,x的值為16*/

x=(z=5,5*2) /*整個表達式為賦值表達式,它的值為10,z的值為5*/

x=z=5,5*2 /*整個表達式為逗號表達式,它的值為10,x和z的值都為5*/

逗號表達式用的地方不太多,一般情況是在給循環變量賦初值時才用得到。所以程序中并不是所有的逗號都要看成逗號運算符,尤其是在函數調用時,各個參數是用逗號隔開的,這時逗號就不是逗號運算符。

如:printf(" %d,%d,%d",x,y,z);

###################################################

運算符使它兩邊的表達式以從左到右的順序被執行,并獲得右邊表達式的值。, 運算符最普通的用途是在 for 循環的遞增表達式中使用。例如:

for (i = 0; i < 10; i++, j++){k = i + j;}

每次通過循環的末端時, for 語句只允許單個表達式被執行。, 運算符被用來允許多個表達式被當作單個表達式,從而規避該限制。

以上這篇淺談JS中逗號運算符的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩综合中文字幕| 久久乐国产精品| 国产精品人人做人人爽| 在线成人一区二区| 欧美性猛交xxxx偷拍洗澡| 国产精品大陆在线观看| 国产精品久久久久久久久久久久| 欧美激情网友自拍| 色多多国产成人永久免费网站| 成人在线免费观看视视频| 久久久久久97| 狠狠躁夜夜躁人人爽超碰91| 亚洲国产精品久久久| 欧美精品xxx| 欧美激情精品久久久久久久变态| 91久久久国产精品| 91久久在线观看| 国产精品福利观看| 欧美性猛交xxxx偷拍洗澡| 成人免费网站在线观看| 精品日本美女福利在线观看| 日本亚洲精品在线观看| 欧美性猛交xxxx免费看久久久| 国产视频亚洲视频| 亚洲日本中文字幕| 日韩美女福利视频| 久久免费视频在线| 亚洲欧美国产精品专区久久| 欧美黑人性猛交| 午夜欧美大片免费观看| 97人洗澡人人免费公开视频碰碰碰| 欧美一区视频在线| 欧美激情喷水视频| 日产精品久久久一区二区福利| 日韩欧美中文字幕在线播放| 久久精品国产综合| 一区二区三区高清国产| 欧美国产日韩一区二区三区| 国产精品av电影| 日本久久久久久久| 成人免费网视频| 日本精品va在线观看| 欧美人交a欧美精品| 亚洲大胆人体av| 日韩hd视频在线观看| 91精品久久久久久久久久| 中文字幕免费精品一区| 亚洲经典中文字幕| 亚洲成人激情在线| 国产美女久久久| 欧美大学生性色视频| 精品亚洲aⅴ在线观看| 日韩美女写真福利在线观看| 久久久久久亚洲精品不卡| 成人免费福利视频| 成人国产在线视频| 日韩在线一区二区三区免费视频| 国产成人拍精品视频午夜网站| 国产精品久久久久不卡| 26uuu另类亚洲欧美日本老年| 青青在线视频一区二区三区| 亚洲成av人片在线观看香蕉| 亚洲欧美中文在线视频| 国产精品国产福利国产秒拍| 色婷婷综合成人av| 欧美二区乱c黑人| 国产91在线视频| 国产精品69久久久久| 精品中文字幕视频| 亚洲最大的av网站| 久久躁日日躁aaaaxxxx| 大胆人体色综合| 亚洲欧洲视频在线| 欧美黄色成人网| 日本午夜人人精品| 久久久精品国产网站| 欧美老肥婆性猛交视频| 97免费中文视频在线观看| 亚洲欧洲高清在线| 久久久91精品| 68精品国产免费久久久久久婷婷| 国产精品96久久久久久| 91大神福利视频在线| 欧洲日韩成人av| 日韩欧美国产高清91| 亚洲一区中文字幕| 人人澡人人澡人人看欧美| 国产精品极品在线| 最近2019年好看中文字幕视频| 精品magnet| 国产精品久久国产精品99gif| 亚洲综合中文字幕在线| 亚洲天堂av女优| 亚洲一二三在线| yellow中文字幕久久| 另类专区欧美制服同性| 日韩中文字幕网址| 在线成人一区二区| 久久久91精品国产一区不卡| 日韩欧美中文免费| 国产精品成人在线| 日韩女在线观看| 久久人人97超碰精品888| 日韩av在线一区二区| 欧美电影免费在线观看| 国产亚洲精品激情久久| 亚洲国产成人爱av在线播放| 国产精品成人在线| 91地址最新发布| 欧美乱大交xxxxx另类电影| 亚洲午夜精品久久久久久性色| 国产精品va在线| 亚洲午夜未满十八勿入免费观看全集| 91tv亚洲精品香蕉国产一区7ujn| 国产剧情久久久久久| 日韩av免费在线| 成人啪啪免费看| 日韩精品极品在线观看播放免费视频| 久久免费视频这里只有精品| 欧美黑人巨大xxx极品| 亚洲福利影片在线| 成人午夜在线视频一区| 伦伦影院午夜日韩欧美限制| 色综合天天综合网国产成人网| 亚洲经典中文字幕| 在线观看国产成人av片| 韩国精品美女www爽爽爽视频| 亚洲加勒比久久88色综合| 亚洲人成欧美中文字幕| 久久6精品影院| 日韩精品在线私人| 日日狠狠久久偷偷四色综合免费| 国产欧美日韩精品在线观看| 国产91色在线|免| 这里只有精品久久| 在线观看欧美日韩国产| 亚洲精品99久久久久中文字幕| 欧美性生活大片免费观看网址| 欧美视频在线观看免费| 亚洲综合在线小说| 91中文在线观看| 亚洲最大福利网站| 色偷偷噜噜噜亚洲男人的天堂| 在线播放日韩av| 日韩免费观看在线观看| 欧美午夜xxx| 亚洲电影免费观看高清完整版在线观看| 亚洲乱码国产乱码精品精天堂| 日韩欧美在线观看视频| 精品福利在线视频| 亚洲欧洲视频在线| 国产免费亚洲高清| 日韩激情视频在线| 久久手机精品视频| 91在线免费观看网站| 久久久欧美一区二区| 亚洲精品美女视频| 久久九九全国免费精品观看| 青草青草久热精品视频在线网站| 国产精品视频精品| 精品久久久久久亚洲精品| 国产一区视频在线| 欧美寡妇偷汉性猛交| 日韩av中文字幕在线播放|