操作符
1) 算术运算符(数字之间运算)
+ += 加法运算
- -= 减法运算
* *= 乘法运算
/ /= 除法运算,弱类型语言,数字统一为Number,为了保证高精度,
例: 5/2 //2.5
% %= 取余运算
例: 5%2 //1
2) 比较运算符 (数字之间的运算)
其他数据类型要进行比较运算,会先自动转换为数字类型再进行比较
> 大于
>= 大于等于
< 小于
<= 小于等于
==,!=
直接比较的是值,如果两个值的数据类型不一致,先转化成一致再比较
1 == "1" //true
如果比较的引用数据类型,比较的是引用地址
===,!==
先比较数据类型,如果数据类型不一致直接返回false,否则比较值
1 === "1" //false
如果比较的引用数据类型,比较的是引用地址
3) 逻辑运算符(短路运算符)
操作数可以为任意数据类型
&&
当第一个表达式结果为真的时候,整个表达式的结果取决于第二个表达式,所以直接将第二个表达式返回
当第一个表达式结果为加的时候,整个表达式的结果可以确定,所以直接将第一个表达式返回
"hello " && 1 //1
"" && 1 //""
||
当第一个表达式结果为真的的时候,整个表达式的结果可以确定,所以直接将第一个表达式返回
当第一个表达式结果为假的时候,整个表达式的结果取决于第二个,所以直接将第二个表达式返回
!
快速将其他数据类型转换为boolean的一种方式
!true //false
!1 //false
!!1 //true
4) 三目运算符
let result = exp1 ? exp2 :exp3;
如果exp1为真,返回exp2,否知返回exp3
5) 位运算符
原码
反码
补码
位与 &
位或 |
异或 ^
6) 拼接运算符(其他数据类型与字符串之间运算)
任意数据类型的值与字符串拼接结果都为字符串
""+undefined //"undefined"
7) 一元运算符
+
+"12" // 快速将其他数据类型转化为数字类型
+1
-
-"12" //-12
-(-"12")
++
前置,先进行自增再进行其他运算
后置,先进行其他运算在进行自增
var a = 3;
++a + a++ //8
//分析
++a //a= 4
a + a //8
a++ //a = 5
var a = 3;
a++ + ++a //8
--
前置,先进行自减再进行其他运算
后置,先进行其他运算在进行自减