运算符用来对一个或多个值进行运算并返回运算结果。比如,+就是一个运算符,用来求两个数的和。let a = 1 + 1
,变量的a的值是2。
算术运算符
算术运算符用来完成算术运算,功能和数学中的算术运算符功能一致。
- + 用于求两个数的和
- – 用于求两个数的差
- * 用于求两个数的积
- / 用于求两个数的商
- % 模运算,求两个数相除的余数
- ** 幂运算,x的y次幂运
注意:对于非数值进行算术运算时会先转换为数值然后再运算(字符串加法除外)。和字符串进行加法运算时,其他值会先转换为字符串然后再运算。
示例:
1 + 1 // 2
true + false //1
1 + "1" // "11"
10 % 3 // 1
2 ** 3 // 8
赋值运算符
- = 等号
- +=
a += b
等价于a = a + b
- -=
a -= b
等价于a = a - b
- *=
a *= b
等价于a = a * b
- /=
a /= b
等价于a = a / b
- %=
a %= b
等价于a = a % b
- ??= 空赋值
注意:使用空赋值符号对变量进行赋值时,只有变量的值为null或undefined时才会发生赋值
一元的+和-
- + 一元的加,正号
- – 一元的减,负号
自增和自减
- ++ 自增
- — 自减
注意:
- 自增会使变量立刻增加1,自增分为前自增
++a
和后自增a++
,前自增会在自增后返回新值,后自增会在自增以后返回旧值,自减同理。
关系运算符
- > 大于
- >= 大于等于
- < 小于
- <= 小于等于
关系运算符和后边的相等运算符都用来比较两个值的关系是否成立,关系成立时返回true,否则返回false。
1 < 5 // true
1 < '5' // true
'11' < '5' // true
比较非数值时,会先转换为数值然后比较。如果两侧的值都是字符串,则会逐位比较字符串的Unicode编码。
相等运算符
- == 相等运算符
- === 全等运算符
- != 不等运算符
- !== 不全等运算符
注意:
相等和不能运算符比较不同类型数据时,会转换为相同的类型进行比较(通常会转换为数字)。全等和不全等不会做类型转换。
1 == '1' // true
1 === '1' // false
逻辑运算符
- ! 逻辑非
- && 逻辑与
- || 逻辑或
注意:
逻辑与运算,在运算时会先检查第一个值是否是false,如果是false直接返回第一个,否则返回第二个。逻辑非正好相反,在运算时会先检查第一个值是否是true,如果是true则返回第一个,否则返回第二个。
false && true // false
0 && true // 0
true || false // true
1 || 2 // 1
条件运算符
- condition ? exprIfTrue : exprIfFalse 三元运算符