算术运算符
- 数字类型的运算
- 加减乘除
- 余数 x % 7
6 % 7 = 6;
-1 % 7 = -1 ;//chrome算错了,按正确的来算结果应该是6
- 指数运算:x ** 2 ,如 7**2 = 49
- 自增\自减:x++\x–++x–x
- 求值运算符:+x
- 负数运算符:-x
- 字符串的运算
- 连接:‘1233’+‘4’ = ‘12334’
比较运算符
- NaN ! == NaN
- 请在以后写代码的时候,用全等或者全不等
- 尽量少用++,–,可以使用 x += 1
// >
1 > 2 // false
// <
2 < 4 // true
// >=
1 >= 1 // true
// <=
5 <= 6 //false
// ==
1 == 2 // false
//!=
1 != 2 // true
// ===
1 === '1' // false
// !==
1 !== '1' //true
js三位一体
布尔运算符
- && \ || \ !
- 短路逻辑 (防御性写法)
// 以防 console 不存在报错
console && console.log && console.log('hi')
// a 的保底值
a = a || 100
点运算符
语法
对象.属性名 = 属性值
作用
读取对象的属性值
有个疑问
不是对象,为什么也可以有属性?'a-b-c'.split('-')
JS 有特殊逻辑,点前面不是对象,就把它封装成对象
number 会变成 Number 对象
string 会变成 String 对象
bool 会变成 Boolean 对象
程序员从来不用这三种对象,只用简单类型
void 运算符
语法
void 表达式或语句
作用
求表达式的值,或执行语句
然后 void 的值总是为 undefined
逗号运算符
//语法
//表达式1, 表达式2, ..., 表达式n
//作用
//将表达式 n 的值作为整体的值
//使用
let a = (1,2,3,4,5)
// 那么 a 的值就是 5,奇葩吧?
let f = (x) => (console.log('平方值为'), x*x)
运算符优先级
主要记住()的优先级即可,其他的优先级实在太多
总结:还有二进制运算符没列举,是因为在实践开发中用的非常非常少,就不做讲解