JavaScript 運(yùn)算符優(yōu)先級(jí),是描述在計(jì)算機(jī)運(yùn)算計(jì)算表達(dá)式時(shí)執(zhí)行運(yùn)算的先后順序。 先執(zhí)行具有較高優(yōu)先級(jí)的運(yùn)算,然后執(zhí)行較低優(yōu)先級(jí)的運(yùn)算。 例如,我們常說的先執(zhí)行相乘和除,再執(zhí)行加減運(yùn)算。
優(yōu)先級(jí) | 運(yùn)算符 | 說明 | 結(jié)合性 |
---|---|---|---|
1 | [] 、. 、() | 字段訪問、數(shù)組索引、函數(shù)調(diào)用和表達(dá)式分組 | 從左向右 |
2 | ++ -- -~!delete new typeof void | 一元運(yùn)算符、返回?cái)?shù)據(jù)類型、對(duì)象創(chuàng)建、未定 義的值 | 從右向左 |
3 | *、/、% | 相乘、相除、求余數(shù) | 從左向右 |
4 | +、- | 相加、相減、字符串串聯(lián) | 從左向右 |
5 | <<、>>、>>> | 左位移、右位移、無(wú)符號(hào)右移 | 從左向右 |
6 | <、<=、>、>=、instanceof | 小于、小于或等于、大于、大于或等于、是否 為特定類的實(shí)例 | 從左向右 |
7 | ==、!=、===、!== | 相等、不相等、全等,不全等 | 從左向右 |
8 | & | 按位“與” | 從左向右 |
9 | ^ | 按位“異或” | 從左向右 |
10 | | | 按位“或” | 從左向右 |
11 | && | 短路與(邏輯“與”) | 從左向右 |
12 | || | 短路或(邏輯“或”) | 從左向右 |
13 | ?: | 條件運(yùn)算符 | 從右向左 |
14 | =、+=、-=、*=、/=、%=、&=、|=、^=、<、<=、>、>=、>>= | 混合賦值運(yùn)算符 | 從右向左 |
15 | , | 多個(gè)計(jì)算 | 按優(yōu)先級(jí)計(jì)算,然后從右向左 |
圓括號(hào)用于改變由運(yùn)算符優(yōu)先級(jí)確定的計(jì)算順序。 這就是說,先計(jì)算完圓括號(hào)內(nèi)的表達(dá)式,然后再將它的值用于表達(dá)式的其余部分。
var result = 10 * 5 + 3; document.write(result); document.write("<br/>"); result = 10 * (5 + 3); document.write(result); // 輸出如下: // 53 // 80
在第一個(gè)表達(dá)式中,按照優(yōu)先級(jí)運(yùn)算,先運(yùn)算的是 10 * 5
,然后再加3
,結(jié)果為50
。
在第二個(gè)表達(dá)式中,我們用圓括號(hào)開改變優(yōu)先級(jí),先讓(5 + 3)
,結(jié)果為8
,然后用8
去乘以10
,結(jié)果是80
/:除法,如:int a = 8/9;
%:取余運(yùn)算: int a = 10%2;
Javascript中主要區(qū)分 ==
和 ===
,同理 !=
和 !==
的關(guān)系
var a = '100'; var b = 100; document.write(a==b); document.write(a===b); document.write(a!=b); document.write(a!==b); // 輸出如下: // true // false // false // true
因?yàn)?Javascript 是弱類型語(yǔ)言,在數(shù)據(jù)類型上處理不是那么嚴(yán)格,也就造成了 '100'==100;返回true
,需要嚴(yán)格一點(diǎn)去比較'100'===100
這個(gè)時(shí)候不僅比較值,還比較類型,所以返回false
。
同理 !=
和 !==
也是一樣,前者比較的是值,后者是類型和值都要比較。
其實(shí)在運(yùn)算過程中,和其他語(yǔ)言一樣,最好直接帶上括號(hào),如var a = 1; a = (a + 100) >>(a+1);
和 var a = 1; a = a + 100>>a+1;
結(jié)果都是25,運(yùn)算順序也一樣,前面的可讀性更好吧?
綜合技術(shù)交流:點(diǎn)擊加入--> [SO JSON官方交流①群][收費(fèi)]
綜合技術(shù)交流:點(diǎn)擊加入--> [SO JSON官方交流②群][免費(fèi)]
要求:不能發(fā)廣告、暴力、政治、付費(fèi)教程,違者直接踢出。
備注:入群費(fèi)用5元,沒有QQ錢包,可以先支付寶
or 微信
掃碼支付5元贊助后,我拉您進(jìn)去。QQ聯(lián)系我。
掃碼贊助:贊助二維碼。
技術(shù)交流QQ群:①群259217951,②群166848545
站長(zhǎng)郵箱:so@sojson.com
對(duì)頁(yè)面內(nèi)容有任何疑問和建議,請(qǐng)聯(lián)系我們。
所有贊助/開支都講公開明細(xì),用于網(wǎng)站維護(hù):贊助名單查看
正在加載... ...