下表按從最高到最低的優(yōu)先級(jí)列出JavaScript運(yùn)算符。具有相同優(yōu)先級(jí)的運(yùn)算符按從左至右的順序求值。
運(yùn)算符 | 描述 |
. [] () | 字段訪問、數(shù)組下標(biāo)、函數(shù)調(diào)用以及表達(dá)式分組 |
++ -- - ~ ! delete new typeof void | 一元運(yùn)算符、返回?cái)?shù)據(jù)類型、對(duì)象創(chuàng)建、未定義值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、減法、字符串連接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、嚴(yán)格相等、非嚴(yán)格相等 |
& | 按位與 |
^ | 按位異或 |
| | 按位或 |
&& | 邏輯與 |
|| | 邏輯或 |
?: | 條件 |
= oP= | 賦值、運(yùn)算賦值 |
, | 多重求值 |
圓括號(hào)可用來改變運(yùn)算符優(yōu)先級(jí)所決定的求值順序。這意味著圓括號(hào)中的表達(dá)式應(yīng)在其用于表達(dá)式的其余部分之前全部被求值。
代碼如下:
z = 78 * (96 + 3 + 45)
在該表達(dá)式中有五個(gè)運(yùn)算符: =, *, (), +, 以及另一個(gè) +。根據(jù)運(yùn)算符優(yōu)先級(jí)的規(guī)則,它們將按下面的順序求值: (), +, +, *, =。
首先對(duì)圓括號(hào)內(nèi)的表達(dá)式求值。圓括號(hào)中有兩個(gè)加法運(yùn)算符。因?yàn)閮蓚€(gè)加法運(yùn)算符具有相同的優(yōu)先級(jí),從左到右求值。先將 96 和 3 相加,然后將其和與 45 相加,得到的結(jié)果為 144。
然后是乘法運(yùn)算。78 乘以 144,得到結(jié)果為 11232。
A最后是賦值運(yùn)算。將 11232 賦給 z。
===操作符: 要是兩個(gè)值類型不同,返回false 要是兩個(gè)值都是number類型,并且數(shù)值相同,返回true 要是兩個(gè)值都是stirng,并且兩個(gè)值的String內(nèi)容相同,返回true 要是兩個(gè)值都是true或者都是false,返回true 要是兩個(gè)值都是指向相同的Object,Arraya或者function,返回true 要是兩個(gè)值都是null或者都是undefined,返回true ==操作符: 如果兩個(gè)值具有相同類型,會(huì)進(jìn)行===比較,返回===的比較值 如果兩個(gè)值不具有相同類型,也有可能返回true 如果一個(gè)值是null另一個(gè)值是undefined,返回true 如果一個(gè)值是string另個(gè)是number,會(huì)把string轉(zhuǎn)換成number再進(jìn)行比較 如果一個(gè)值是true,會(huì)把它轉(zhuǎn)成1再比較,false會(huì)轉(zhuǎn)成0 如果一個(gè)值是Object,另一個(gè)是number或者string,會(huì)把Object利用 valueOf()或者toString()轉(zhuǎn)換成原始類型再進(jìn)行比較
詳細(xì)出處參考:http://www.gxlcms.com/article/17542.htm
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com