JS五種運算子,運算子的優先順序

2021-08-09 14:54:20 字數 1864 閱讀 5734

js的運算子一共包括五種,下面我們來乙個個的解說一下,開工~

1、賦值運算子

符號:=

解釋:這裡的等號不是數學裡面的相等,是賦值。在應用時,需要先把等號右邊的表示式算出來結果,再賦值給左邊。

var a =10+

5;console.

log(a);//15

2、算術運算子

符號:+、 -、 *、 /、 %、 ++、 –

解釋:算術運算子的優先順序是先乘除再加減

①.%是取餘、求模,也就是整數除以乙個數,除不開了,餘下的數就是答案。例如:10%3=1(10對3取餘/求模等於1)。

②.++自增:++放在前面,放在後面是區別的

a:當然了作為自增量,++a和a++,都會讓a加1

var a = 10

; console.log(a++,++a);//11,11

b:當需要賦值給另乙個變數的時候,就不一樣了

a = 10

; var b = a++;

console.log(b);//10

var c = ++a

; console.log(c);//11

哈哈,這個時候小夥伴們就要疑惑了吧,不都是自增嗎,咋換了個位置就不行了呢,好且聽我偷偷的告訴你們乙個口訣:

++在後,先賦值後運算;++在前,先運算後賦值。

其實很好理解,比如上面的例子中的a++,++在後,那你一看人家在賦值的時候都把++藏自己身後了,肯定是要獨享唄對不對;那++a,一看都擺在前面了,肯定是要一直賦值給人家的啦~

③.–自減

情況和自增一樣,請參考上面。偷個懶o(∩_∩)o~

3、關係運算子

符號:<,>,>=,<=,!=,!==,==,===

解釋:關係運算子的結果是布林值(true/false)

另外需要注意的是==和===,多乙個等號就會多一層判斷,多乙個等號的那個不僅判斷數值,也會判斷資料型別是否一致,一致返回true,反之返回false

==和===的區別:

console.log(5 == "5");//true,不看資料型別,只比較大小

console.log(5 === "5");//false,會判斷型別,並比較大小

4、邏輯運算子

符號:邏輯運算子可以連線多個關係表示式,分為以下三種:

邏輯與 && 並且;邏輯或 || 或者;邏輯非 ! 取反

解釋:

①.&&邏輯與,需要兩個條件都為真,才為真,即一假即假

②.||邏輯或,只要有乙個條件為真就為真,即一真即真

③.!邏輯非,對結果取反

④.運用邏輯運算子做乙個判斷的時候有可能有多個關係表示式共存

5、條件運算子/三目運算子

符號:條件?表示式1:表示式2

解釋:條件為真,執行表示式1;為假,執行表示式2。

最簡單的例子

var a =

true

?3:5;

console.

log(a);//當然是3啦~\(≧▽≦)/

6、運算子的優先順序問題:

算術運算子》關係運算子》邏輯運算子》賦值運算子,

這個式子不難得出,按照正常的運算規則,舉幾個例子一試便知,所以我也就不贅述了……

7、斷路與 和 短路或的問題:

這個存在的理由是要節省系統效能

斷路與:在邏輯與裡面,如果第乙個條件為假,就可以判斷整個表示式為假,就不會去判斷第二個條件(一假即假)

短路或:在邏輯或裡面,如果第乙個條件為真,就可以判斷整個表示式為真,就不會去判斷第二個條件(一真即真)

JS運算子和運算子優先順序

先做一道題 var val abcd console.log value is val abcd a b 控制台列印出的結果是 a 因為連線符的優先順序高於三元運算子,所以該題目相當於 value is true a b 由此得出該題的兩個變體 console.log value is val ab...

運算子優先順序 C 運算子優先順序

c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...

運算子優先順序 Python 運算子優先順序

python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...