1. 程式人生 > 實用技巧 >javaScript 運算子(操作符)

javaScript 運算子(操作符)

類別

操作符

算術操作符 +、 –、 *、 /、 %(取模)
字串操作符 + 字串連線 +=字串連線複合
布林操作符 !、 &&、 ||
一元操作符 ++ 、 -- 、 +(一元加)、 -(一元減)
關係比較操作符 < 、 <= 、 > 、>=、 != 、 == 、 === 、 !==
按位操作符 ~ 按位非 &按位與 | 按位或 ^按位異或 <<左移 >>有符號右移 >>>無符號右移
賦值操作符 = 、 複合賦值(+=、-=、*=、%=) 複合按位賦值(~=、&=、|=、^=、<<=、>>=、>>>=)
物件操作符 .屬性訪問、[]屬性或陣列訪問、 new呼叫建構函式常見物件、delete變數屬性刪除、void(返回undefined)、in判斷屬性、instanceof原型判斷
其它操作符 ?: 條件操作符、,逗號操作符、()分組操作、typeof型別操作符

一個表示式叫操作,兩個及以上叫運算。

JavaScript中的大多數運算子是一個二元運算子(binary operator),將兩個表示式合併成為一個稍複雜的表示式。譬如a*b中的乘法運算子*,就是一個二元運算子。表示式-x中的-運算子就是一個一元運算子,是將運算元x求負值。最後,JavaScript支援一個三元運算子(ternary operator),條件判斷運算子?:,它將三個表示式合併成一個表示式。

這次想寫下一元操作符 + -

上題 :

a = 1
'a' + + 'b'
a +++ a
a ++ + ++ a

a ++ 'b' ==>a + +'b';+'b' 會進行一元加操作相當於 Number('b'),將表示式轉換成數字。即 aNaN)(要注意+ +中間空格)

a +++ a==>a++ + a; ,++一元操作符優先順序高於算數操作符 + ,a++運算之後加1,所以當前a為1,後一個a為2。即 3

a ++ + ++ a==>和上一個相似。結果為6

這裡想弄明白原因必須要知道優先順序、結合性、運算順序

優先順序:屬性訪問 > 一元操作符 > 乘除 > 加減 > 比較 > 相等 > 與運算 > 或運算 > 三目運算 > 賦值運算

>逗號(不參與運算)

結合性(左、右結合):一行程式碼中存在多個運算子,且這些運算子的優先順序相等。所有一元操作符、三目運算子和賦值運算子都是右結合,其他的操作符都是左結合

x = a ? b : c ? d : e ? f : g;==> x = a ? b : (c ? d : (e ? f : g));

運算順序:表示式裡還包含表示式從左向右執行。例如a +++ a ==》((a++) + a )

注意:++ 和 + + 區別很大;連續 + 不能超過3個;++不能運算元字;數字 + NaN = NaN