運算符主要用于連接簡單表達式,構成一個復雜的表達式,而表達式是為了得到返回值,js中,表達式必定會返回一個值。(js中,預期為值的地方都可以使用表達式)
JS的運算符:
1.有一些運算符可以用于任何數據類型的計算,比如運算符
2.大部分運算符希望操作數是特定的類型,然后計算出特定的類型值(因此,運算符會根據需要對操作數進行數據類型轉換,比如*號,只能用于操作數值,那么運算符兩邊是字符串,也會先將字符串轉換成數值然后相乘)
3.有些對不同的數據類型有不同的含義。比如算術運算符中的加法運算符
常見的JS運算符包括:算術運算符,比較運算符,邏輯運算符,賦值運算符。
一.算術運算符
+ - * / % ++ --
算術運算符的返回值是數值(加法運算符例外),即無論運算符兩邊是何種數據類型,都會將其轉為數值在求值,如果無法轉為數值,則值為NaN
加法運算符:
1.兩邊數據類型為數值,直接相加
2.兩邊有一個數據類型為字符串類型,則將另外一個轉為字符串類型,然后拼接到一起
3.有一側為對象,根據另一側數值類型,調用其或方法,然后計算
4.如果只有右側有字符串,左側無值,將其轉為數字
5.如果只有右側有數字參數,則返回其正數值
自增/自減運算符:
a++:返回值為a;++a返回值為a+1
a--返回值為a;--a返回值為a-1
二.比較運算符
== === != !== > >= < <=
比較運算符返回值為布爾值:true/false,需將運算符兩側數據類型轉化為相同數據類型在比較(絕對相等運算符===除外)
絕對相等運算符:運算符兩邊數據類型相同,值相等才返回true,否則返回false
三.邏輯元算符
! && ||
!a:自動將表達式a轉為布爾值,然后取反
a&&b:自動將a和b轉為布爾值,若a為truejs中運算符的優先級,則返回b;若a為false,則返回a
a||b:自動將 a和b轉為布爾值,若a為true,則返回a;若a為false,則返回b
四.賦值運算符
x = y;
x += y;
x -= y;
x *= y;
x /= y;
x %= y;
x >> y;
x << y;

x >>> y;
x &= y;
x |= y;
x ^= y;
五.位運算符
| & ~ ^ << >> >>>
位運算符為二進制運算符,返回數值,將運算符兩側表達式轉為二進制數,比較每一位數值
或運算符 | :比較兩個表達式的二進制位,有一個為1,則為1,否則為0;
3|4 // 7

3: 00000000011
4: 00000000100
3|4 : 00000000111 //7
與運算符 & :比較兩個表達式的二進制位,兩個都是1才為1,否則為0;
3&4 //0
3: 00000000011
4: 00000000100
3&4 : 00000000000 //0
運算符優先級:即誰優先級高js中運算符的優先級,先計算誰
在這里可以查找運算符優先級。