算数运算符
-1 % 7 按理说 === (-1+7)&7 ===6
但实际上=== - 1&7 === -1
string运算符
连接运算'123'+'456' === '123456'
字符串只支持一个符号的运算,就是+
1 + '2' === '12'(这种代码其实是有问题的,但JS就是这么莫名其妙)
==
永远不要使用==,用===替代
==问题在于,他总是自作聪明(自动类型转换)
===
基本类型看值是否相等
对象看地址是否相等
只需记住
- [] !== []
- {} !== {}
- NaN !== NaN
使用与运算符判断奇偶
偶数 & 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前边补0的右移运算
使用^来交换 a b 的值
var a = 5
var b = 10
a ^= b
b ^= a
a ^= b
console.log(a) //10
console.log(b) //5
点运算符
JS有特殊逻辑,.前边不是对象,就把他封装成对象。
number会变成Number对象
string会变成String对象
bool会变成Boolean对象
永远不要用这三种对象
运算符优先级
汇总表位于MDN
圆括号优先级最高
网友评论