运算符
一元运算符
需要掌握的就是++和--。该运算符放在操作数的前面还是后面,效果是不一样。
如果++(--)放在操作数的前面,那么是先自增,在参与运算。如果是放在后面,则先参与运算,然后自增
尽量要去降低++(--)放在前面还是后面的差异性,将i++或者++i单独写一行。
使用这个一元运算符存在一些隐式转换,隐式转换里面会调用Number函数将其他数据类型转为数值类型
逻辑运算符:与 或 非
非:就是取反。非真即假,非假即真,使用的运算符就是一个!
与:表示两个为真,才是真,如果有一个为假,那么就是假
如果两个操作数都为真,那么会返回第二个操作数
短路现象:所谓短路现象,就是指只要第一个数为假,那么就不会去判断第二数,因为第二个操作数无论真假,结果都是假
特殊返回值:
如果一个操作数是NaN,返回的就是NaN。
如果一个操作数是null,返回的就是null。
如果一个操作数是undefined,返回的就是undefined。
或:或里面只要有一个为真,那么就返回真
同样存在短路现象。如果第一个操作数为真,就不会判断第二个了。
特殊返回值:
如果两个操作数都是NaN,返回的就是NaN。
如果两个操作数都是null,返回的就是null。
如果两个操作数都是undefined,返回的就是undefined。
两个都为真,返回第一个操作数
算数运算符
加法,减法,乘法,除法,取模,指数运算符
除法:
取模:就是数学里面的取余数。运算符为一个%
指数运算符:
在ES6之前,没有指数运算符,我们求次方需要调用Math对象的pow()方法
关系运算符:大于 小于 大于等于 小于等于 相等 不相等 全等 不全等
最终会返回一个布尔值
除了数字,字母也可以比大小,比较的是ASCII对应的字符编码。
如果是字符串和数字进行比较,那么会先将字符串隐式转换为数字,如果不能转换,则转为NaN
NaN和任何类型进行比较,返回的都是false
相等 不相等 全等 不全等
==:值相等,但是数据类型可以不相等
特殊情况:
===:值相等,数据类型类型也必须相等
赋值运算符“=”
除了=以外,还有一组复合赋值运算符 += -= *= /= %=
其他运算符
- 三目运算符?:
语法: 表达式1?表达式2:表达式3
如果表达式1为真,那么就执行表达式2,如果表达式1为假,那么就执行表达式3
2 逗号运算符
一般用于在一条语句中执行多个操作
除了上面以外,逗号运算符还可以赋值
需要注意的是。有很多运算符的参与运算的时候,可以使用小括号来改变优先级