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