算术运算符
- + 加法运算符
- - 减法运算符
- * 乘法运算符
- / 除法运算符
- % 模运算符 取余
- ** 幂运算
非数值跟数值进行运算 其他值转换为数值后再运算
当任意一个值和字符串做加法运算时,先把其他的值转换为字符串,然后拼接
赋值运算符=
- += -= *= /= %= **=
自增运算符 ++
- 会使原变量增加1
- 前自增 ++a 后自增 a++
- ++a 返回新值 自增后的值
- a++ 返回旧值 自增前的值
自减运算符--
- 会使原变量-1
- 前自减 --a 后自减a--
- --a 返回新值 自减后的值
- a-- 返回旧值 自减前的值
逻辑运算符
逻辑非 !
逻辑与 &&
- 左右两边同时满足条件为true ,返回true,否则返回false
- 非布尔值 先转布尔值再返回原值
- 先转换第一个值
- 第一个值为true 返回第二个值
- 第一个值为false 返回第一个值
逻辑或 ||
- 左边或右边是true,就返回true,否则返回false
- 非布尔值 也是返回原值
- 第一个值为true 就返回第一个值
- 第一个值为false 就返回第二个值
关系运算符> < >= <=
- 看关系是否成立 成立就返回true 否则返回false
- 非数值进行关系运算,先转换为数值再比较
- 字符串比较,比较的是unicode编码
相等运算符
== 相等
- 比较两个值是否相等
- 不同类型的值比较,先转换为同类型(一般转换为数值) 再比较
- null == undefined
- NaN 跟任何值都不相等 包括它自己
=== 全等
- 不会自动类型转换,类型不同,false
!=不等
- 会自动类型转换
!== 不全等 严格不相等
- 不会自动类型转换
条件运算符(三目运算符)
- 条件表达式 ? 表达式1 :表达式2
- 条件表达式返回值为true,执行表达式1
- 为false,执行表达式2
运算符的优先级
https://developer.mozilla.org/zhCN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#%E6%B1%87%E6%80%BB%E8%A1%A8
- ( ) 优先级最高