javascript在进行运算时,会进行隐式类型转换(=== , !==除外)
比较运算符
- < > 大于小于运算符, 若两边有1个是数字,则隐式转换为数字进行比较;若是字符串,则按照unicode编码顺序进行比较
- ==,!= 判断两边操作数是否相等,会先进行隐式类型转换
- === 类型相同且数值相等,则返回true;!==类似
'3' > 1 // 返回true
'0' > 1 //返回false
true > 1 // 返回false
true < 1 //返回false
true == 1 //返回true
undefined null NaN
- undefined == null ,返回true
- NaN == NaN , 返回false, NaN谁都不相等
- !非运算符 , 返回true的6种情况
!null , !undefined !NaN !false !0 !‘’
!null // 返回true
!undefined // 返回true
!NaN // 返回true
!false // 返回true
!0 // 返回true
!"" // 返回true
算数操作符
- 加减乘除+ - * /
- 取余 %
- 求幂 ** , 注意求幂不是^
3**2 //返回9
- 2个一元运算符,其实就是将操作数转换成number , 操作符 + -
一元运算符
- +运算符:转换为number
- -运算符,转换为number,并返回负值
console.log(+"3");//打印 3
console.log(-"3");//打印 -3
位操作符
先将操作数转为二进制,再将二进制的每一位进行比较操作
- 按位与 a & b
- 按位或 a | b
- 按位异或 a ^ b
- 按位非 ~a
- 左移,右边填入0
- 右移,丢弃右边被移出的位
逻辑操作符
&& ||
未完待续