# JS运算符
# 运算符类型:
- 算术运算符
加法运算符(Addition):x + y 减法运算符(Subtraction): x - y 乘法运算符(Multiplication): x * y 除法运算符(Division):x / y 余数运算符(Remainder):x % y 自增运算符(Increment):++x 或者 x++ 自减运算符(Decrement):--x 或者 x-- 求负运算符(Negate):-x 数值运算符(Convert to number): +x
x++
与x--
值为计算之前的值,++x
与--x
值为计算之后的值
- 比较运算符
== 相等 === 严格相等 !=不相等 !== 严格不相等 < 小于 <= 小于或等于 大于 = 大于或等于
//基本类型看值是否相等
//对象看地址是否相等
[] !== []
{} !== {}
NaN !== NaN
- 布尔运算符
! 取反运算符 && 且运算符 || 或运算符
Test1:a = a || 0
什么含义? a的保底值为0
- 二进制运算符
或运算(or):符号为|,表示两个二进制位中有一个为1,则结果为1,否则为0。 与运算(and):符号为&,表示两个二进制位都为1,则结果为1,否则为0。 否运算(not):符号为~,表示将一个二进制位变成相反值。 异或运算(xor):符号为ˆ,表示两个二进制位中有且仅有一个为1时,结果为1,否则为0。 左移运算(left shift):符号为<< 右移运算(right shift):符号为>> 带符号位的右移运算(zero filled right shift):符号为>>>
Test2:使用运算符判断奇偶
数字 & 1
//结果若为 0 则为偶数,否则为奇数
7 & 1
1
8 & 1
0
Test3:使用运算符取整
console.log(~~ 5.12) // 5
console.log(5.12 >> 0) // 5
console.log(5.12 << 0) // 5
console.log(5.12 | 0) // 5
console.log(5.12 >>> 0) // 5
Test4:使用运算符交换ab值
var a = 5
var b = 8
a ^= b
b ^= a
a ^= b
console.log(a) // 8
console.log(b) // 5
- 其他运算符
逗号运算符 语法: 表达式1,表达式2,...表达式n 作用:将表达式n的值作为整体的值
let a =(1,2,3,4,5)
let f2 = (x)=>(console.log('x的平方为:'),x*x)
void运算符 语法: void 表达式或语句 作用:求表达式的值或执行语句,void的值总为undefined