Javascript算符的優(yōu)先級(jí)介紹
JavaScript中的運(yùn)算符優(yōu)先級(jí)是一套規(guī)則。該規(guī)則在計(jì)算表達(dá)式時(shí)控制運(yùn)算符執(zhí)行的順序。具有較高優(yōu)先級(jí)的運(yùn)算符先于較低優(yōu)先級(jí)的運(yùn)算符執(zhí)行。例如,乘法的執(zhí)行先于加法。
下表按從最高到最低的優(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.dbjr.com.cn/article/17542.htm
- js利用與或運(yùn)算符優(yōu)先級(jí)實(shí)現(xiàn)if else條件判斷表達(dá)式
- 淺談JS運(yùn)算符&&和|| 及其優(yōu)先級(jí)
- 淺談JavaScript中運(yùn)算符的優(yōu)先級(jí)
- JavaScript定義變量和變量?jī)?yōu)先級(jí)問題探討
- 淺析JavaScript中的同名標(biāo)識(shí)符優(yōu)先級(jí)
- JS前端知識(shí)點(diǎn) 運(yùn)算符優(yōu)先級(jí),URL編碼與解碼,String,Math,arguments操作整理總結(jié)
- JS正則表達(dá)式大全(整理詳細(xì)且實(shí)用)
- JS運(yùn)算符優(yōu)先級(jí)與表達(dá)式示例詳解
相關(guān)文章
JavaScript高級(jí)程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記2 js基礎(chǔ)語法
這一篇復(fù)習(xí)一下ECMAScript規(guī)范中的基礎(chǔ)語法,英文好的朋友可以直接閱讀官方文檔。JavaScript本質(zhì)上也是一種類C語言,熟悉C語言的朋友,可以非常輕松的閱讀這篇文章,甚至都可以跳過,不過建議你最好還是看一看,在介紹的同時(shí),我可能會(huì)引用一些自認(rèn)為不易理解且比較流行的用法。2012-10-10JavaScript中利用各種循環(huán)進(jìn)行遍歷的方式總結(jié)
這篇文章主要介紹了JavaScript中利用各種循環(huán)進(jìn)行遍歷的方式總結(jié),是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11javascript 繼承學(xué)習(xí)心得總結(jié)
下面小編就為大家?guī)硪黄猨avascript 繼承學(xué)習(xí)心得總結(jié)。小編覺得挺不錯(cuò)的?,F(xiàn)在分享給大家。給大家做個(gè)參考2016-03-03JavaScript中g(shù)etUTCMinutes()方法的使用詳解
這篇文章主要介紹了JavaScript中g(shù)etUTCMinutes()方法的使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06淺析函數(shù)聲明和函數(shù)表達(dá)式——函數(shù)聲明的聲明提前
下面小編就為大家?guī)硪黄獪\析函數(shù)聲明和函數(shù)表達(dá)式——函數(shù)聲明的聲明提前。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2016-05-05WEB頁子窗口(showModalDialog和showModelessDialog)使用說明
WEB頁子窗口(showModalDialog和showModelessDialog)使用說明,大家可以看下。2009-10-10