算术运算符
number 运算符
- 加减乘除
- 余数 x % 7
- 指数 x ** 3
- 自增自减 x++ / ++x / x-- / --x
- 求值运算符 +x
- 负数运算符 -x
- 不同类型不要加起来
string 运算
比较运算符
- >
- <
- >=
- <=
- ==
- !=
- ===
- !==
- 永远不要用 == ,用 === 代替
- x === y 真值:
- 基本类型看值是否相等
- 对象看地址是否相等
- NaN !== NaN
布尔运算符
或且非
短路逻辑
- console && console.log && console.log('hi')
- 以防 console 不存在报错
- a = a||100 // n=0
- a 的保底值
二进制运算符
或、与、否
- | 两个位都为 0,则结果为 0,否则为 1
- & 两个位都为 1,则结果为 1,否则为 0
- ~
异或
左移右移
头部补零的右移运算符
使用与运算符判断奇偶
~,>>, <<, >>>, | 来取整
console.log(~~ 6.83)
console.log(6.83 >> 0)
console.log(6.83 << 0)
console.log(6.83 | 0)
console.log(6.83 >>> 0)
使用 ^ 来交换 a b 的值
var a = 5
bar b = 8
a ^= b
b ^= a
a ^= b
console.log(a) // 8
console.log(b) // 5
点运算符
语法
作用
疑惑
- 不是对象,为什么也可以有属性
- JS有特殊逻辑,点前面不是对象,就封装成对象
- 但是用完之后就清除
void 运算符
语法
作用
- 求表达式的值,或执行语句
- 然后 void 的值总是为 undefined
逗号运算符
语法
作用
使用
- let a = (1,2,3,4,5)
- 那么 a 的值就是5
- let f = (x)=>(console.log('平方值为'), x*x)
- 括号不能省去