网上很少人讲这些,我遇到了就总结一下。
结合性
- 从左到右 or 从右到左
- a = b = 1 赋值是从右到左
- 3 + 2 * 5 加法和乘法是从左到右
优先级
- 谁的优先级高先处理谁
- 3 > 2 && 2 > 1 到底先算谁
优先级从低到高
- 逗号, < = < || < && < === < 大小判断(>,<) < 加减 < 乘除 < typeof < 前置递减递增(++...) < 逻辑⾮ (!...) < 后置递减递增(...++) < new < 成员访问(x[y]或x.y) < 小括号
- 不需要全部背下来,一般按照直觉就是符合规则的,要特别记住 **typeof **和 = 这两个的优先级。
出几道题进行巩固
typeof 2+3
typeof (2+3)
typeof typeof 2+3
let a = 2, b = 3
console.log(a+++b)
let c = d = 5
console.log(c)
let x = (a = 1, b = 2)
console.log(x, a, b)
let num = 50
let isOk = false
let result = !isOk&&num+10>60