JavaScript基礎語法(4) 運算符 運算符用於將一 個或者多個值變成結果值。 使用運算符的值稱為操作數,運算符和操作數的組合稱為表達式 JS中的運算符可以分成下麵幾類: 算術運算符 邏輯運算符 比較運算符 字元串運算符 位操作運算符 賦值運算符 條件運算符 一、算數運算符 算數運算符是最簡單 ...
JavaScript基礎語法(4)
運算符
運算符用於將一 個或者多個值變成結果值。
使用運算符的值稱為操作數,運算符和操作數的組合稱為表達式
JS中的運算符可以分成下麵幾類:
- 算術運算符
- 邏輯運算符
- 比較運算符
- 字元串運算符
- 位操作運算符
- 賦值運算符
- 條件運算符
一、算數運算符
算數運算符是最簡單,也是最常見的運算符,就是加減乘除...
運算符 | 表達式 | 說明 | 示例 |
+ | x + y | 返回x加y的值 | x=5 + 2,結果為7 |
- | x - y | 返回x加y的值 | x=5 - 2,結果為3 |
* | x * y | 返回x乘以y的值 | x=5 * 2,結果為10 |
/ | x / y | 返回x除以y的值(取商) | x=5 / 2,結果為2 |
% | x % y | 返回x除以y的模(取餘) | x=5 % 2,結果為1 |
++ | x++; ++x | 返回數值遞增;遞增並返回數值 | 5++;++5,結果為5; 6 |
-- | x--; --x | 返回數值遞減;遞減並返回數值 | 5--;--5,結果為5;4 |
這裡註意:
- x++ 是將自身的值賦給變數,之後自身再加1;也就是先執行當前的代碼,完了之後加1,x--同理。
- ++x 是將自身+1 後的值賦給變數,同時自身加1;也就是先加1,然後執行後面的代碼,--x同理。
二、邏輯運算符
運算符 | 表達式 | 說明 | 示例 |
&& | 表達式1 && 表達式2 | 與,若2個表達式值都為true,返回true,否則返回false |
5>1 && 5<10 返回true 5>1 && 5>10 返回false |
|| | 表達式1 || 表達式2 | 或,若2個表達式值都為false,返回false,否則返回true |
5>1 || 5>10 返回true 5<1 || 5>10 返回false |
! | !表達式 | 非,若表達式值為false,返回true,否則返回false |
!(5>1) 返回false !(5<1) 返回true |
三、比較運算符
運算符 | 表達式 | 說明 | 示例 |
== | 表達式1 == 表達式2 | 等於,判斷左右兩邊表達式是否相等 |
age == 18 //比較age是否等於18 |
!= | 表達式1 != 表達式2 | 不等於,判斷左右兩邊表達式是否不相等 |
age != 18 //比較age是否不等於18 |
> | 表達式1 > 表達式2 | 大於,判斷左邊表達式是否大於右邊表達式 |
age > height //比較age是否大於height |
< | 表達式1 < 表達式2 | 小於,判斷左邊表達式是否小於右邊表達式 |
age < height //比較age是否小於height |
>= | 表達式1 >= 表達式2 | 大於等於,判斷左邊表達式是否大於等於右邊表達式 |
age >= height //比較age是否大於等於height |
<= | 表達式1 <= 表達式2 | 小於等於,判斷左邊表達式是否小於等於右邊表達式 |
age <= height //比較age是否小於於等於height |
註意:
- 比較運算符的結果是布爾值
- = 是賦值運算符,== 是比較運算符別弄混了,北冥曾弄混過,被老師扣分老慘(~.~)
四、字元串連接符
就一個“+”,對兩個或者多個字元串進行連接的操作。
var str1="beiming": var str2="love"; var str4=str1+str2 ;//結果為" beiminglove" var str5=str1+" "+str2 ;//結果為"beiming love" var a="5", b="20", c=a+b;//c 的結果為"520" var A=5,B=20,C=A+B;//C的結果為25
註意:當+號操作的是字元串型時,表示鏈接字元串,操作數值型時,做加法運算。
五、位運算符
位操作符,是對數值的二進位位進行操作,如做左移,右移等等。
運算符 | 表達式 | 說明 |
& | 表達式1 & 表達式2 | 當兩個表達式的值都為true時返回1,否則返回0 |
| | 表達式1 | 表達式2 | 當兩個表達式的值都為false時返回0,否則返回1 |
^ | 表達式1 ^ 表達式2 | 兩個表達式中有且只有一個為false時返回1,否則返回0 |
<< | 表達式1 << 表達式2 | 將表達式1向左移表達式2指定的位數 |
>> | 表達式1 >> 表達式2 | 將表達式1向右移表達式2指定的位數 |
>>> | 表達式1 >>> 表達式2 | 將表達式1向右移表達式2指定的位數,空位補0 |
~ | ~表達式 | 將表達式的值按二進位逐位取反 |
console.log(true & true);//結果:1 console.log(false | false);//結果:0 console.log(true ^ false);//結果:1
這裡可以參考進位與轉換:https://www.cnblogs.com/beimingdaoren/p/12771047.html
console.log(1 >> 1); //這裡我們以8bt為例,首位表符號(0表正數1表負數) //1的二進位源碼為00000001,右移1位後:00000000,結果為0 console.log(1 << 1); //1的二進位源碼為00000001,左移1位後:00000010,結果為2 console.log(2 >>> 1); //2的二進位源碼為00000010,左移1位並且空位補0後:00000001,結果為1 //處理正數與>>差不多,但是處理負數時,使用補碼形式就有很大區別 console.log(~1); //1的源碼:00000001,~逐位取反後:100000010,結果為~2 //位非運算實際上就是對數字進行取負運算,再減 1。
七、賦值運算符
運算符 | 表達式 | 說明 |
= | 變數 = 表達式 | 將表達式值賦予變數 |
+= | 變數 += 表達式 | 將表達式值與變數值執行+加法操作後賦予變數 |
-= | 變數 -= 表達式 | 將表達式值與變數值執行-減法操作後賦予變數 |
*= | 變數 *= 表達式 | 將表達式值與變數值執行*乘法操作後賦予變數 |
/= | 變數 /= 表達式 | 將表達式值與變數值執行/除法操作後賦予變數 |
%= | 變數 %= 表達式 | 將表達式值與變數值執行%取餘法操作後賦予變數 |
<<= | 變數 <<= 表達式 | 對變數按表達式的值向左移 |
>>= | 變數 >>= 表達式 | 對變數按表達式的值向右移 |
>>>= | 變數 >>>= 表達式 | 對變數按表達式的值向右移,空位補0 |
&= | 變數 &= 表達式 | 將表達式的值與變數執行&操作後賦予變數 |
|= | 變數 |= 表達式 | 將表達式的值與變數執行|操作後賦予變數 |
^= | 變數 ^= 表達式 | 將表達式的值與變數執行^操作後賦予變數 |
八、條件運算符
條件運算符也叫三目運算符
語法:
條件表達式? 值1 : 值2;
例子:
console.log(2>1 ? "2>1為真" : "2<1位假");//結果:2>1為真 console.log(1>2 ? "1>2為真" : "1<2位假");//結果:1>2為假