算数运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取结果。
+运算符
- Number和其他类型,当对不是Number的变量运算时,会先转换为Number再运算;
- 数字加NaN,会返回一个NaN
- 两个字符串可以相加,进行字符串的拼接,任意数据类型加上字符串都会转换为字符串
一元运算
-
只需要一个操作数:+ -
a = +a
a = -a
[ a = true; b = -a; ----- b = -1] 先转换为number,在进行运算 -
自增自减(自减同理)
a++和++a 源变量会立马自增1
b1 = a++:a++的值等于a自增前的值 1
b2 = ++a:++a的值等于源变量自增后的值 2
逻辑运算
非布尔值先转换为布尔值,在进行逻辑运算。
- !非运算
取反 - && 与
只要一个为假结果就是假
JS中的 “ ” 属于短路的与,因此在运算时,不会检查第二个值,如果第一个为false,直接返回false - || 或
只要一个为真,结果就为真
JS中的 “ ” 属于短路的或,如果第一个为false,则会检查第二个
赋值运算
-
- 直接赋值
- += 不可分开写,左边加上右边,再将结果赋值给左边
- -= 左边减去右边,再将结果赋值给左边
- *= 、 /= 、 %=
关系运算符
- /> / <可以比较两个运算符之间的大小关系。关系成立返回true,反之为false。
- /<= / <=
对于非数字比较,先进行数字的转换,再进行比较,例如 2> true — true - == 相等关系,成立返回true,反之false
如果类型不行等,类型转换后相等那么也会返回true。 - != 不等关系
注意:NaN == NaN 将返回false NaN和所有值的都不想等,包括他自己,可以通过isNaN()函数来检查一个值是不是NaN。 - === 全等关系
如果类型不同,则返回false - !== 不全等,值相等,类型不等,也会返回true
条件运算
- 三元运算:条件语句 ? 语句1: 语句2;
运算符的优先级
- . ,[] , new
- ()
- ++,–
- !,~,+(单目),-
- %,*,/
- +,-
- << ,>>,>>>
- <,<=,>,>=
- &
- ^
- |
- &&
- ||
- ?:
- =,+=,-=,*=,/=,%=,<<=,>>=,>>>=,&=,^=,|=
- ,