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为假