- 算术运算符
- number运算
加减乘除
余数 x % 7
指数 x ** 3
自增自减 x++ / ++x / x-- / --x
求值运算符 +x
负值运算符 -x
- string运算
连接运算 '123'+'456'
- 比较运算符
>
<
>=
<=
== : 模糊相等
!= : 不模糊相等
=== :全等
!== : 不全等
0 == [];
0 == '0';
0 == '/t';
但是右侧三个互不相等;
[] == false 但不是falsy
[] == false 但{}却不是
[[]] == false
[] !== []
{} !== {}
基本类型看值,对象看地址
NaN !== NaN

- 布尔运算符
或且非
||
&&
!
短路逻辑
console && console.log && console.log('hi')
以防console不存在报错
a = a || 100
a的保底值

- 二进制位运算符
或、与、否
|两个位都为0,则结果位0,否则为1
& 两个都为1才是1,否则为0
~ 取反
异或
^
两个位相同,则结果为0,否则为1
左移右移
<< 和 >>
头部补零的右移运算符
>>>
使用与运算符判断奇偶
- 代码
偶数 & 1 = 0
奇数 & 1 = 1
使用~,>>,<<,>>>,|来取整
console.log(~~ 6.83) // 6,为位运算不支持小数,自动抹去
console.log(6.83 >> 0) // 6
console.log(6.83 << 0) // 6
console.log(6.83 | 0) // 6
console.log(6.83 >>> 0) // 6
使用 ^ 来交换 a b 的值
var a = 5
var b = 8
a ^= b
b ^= a
a ^= b
console.log(a) //8
console.log(b) //5
- 其他运算符
- 点运算符: 对象.属性名 = 属性值
- 读取对象的属性值,点只能用在对象上面,若前面不是对象,则将前面变为对象,调用完之后再改回原来的类型

void运算符,void表达式或语句
-
作用:求表达式的值,或执行语句,然后void的值总是为undefined
-
在a标签中return false可以阻止默认动作,将其改为void(f())作用相同
-
逗号运算符:表达式1,表达式2,表达式n
-
作用:将表达式n的值作为整体的值
let a = (1,2,3,4,5)
那么a的值就是5
let f = (x) => (console.log('平方值为'),x*x)
注意上面的括号不能省