一.算数运算符
+:数字之间的运算,以及字符串之间的链接
只要 + 两边有任何一边是字符串的时候,那么就进行字符串的链接
算数运算符有哪些呢?
+ - * / % ++ --
++ /-- 符号的用法:
作为前缀的时候先自增/自减在使用
作为后缀的时候先使用在自增/自减
优先级 :先 * / % 再 + - 如果想提升优先级 使用()
四舍五入解决误差的方法:.toFixed(n) n表示保留几位小数
例如:
var change = 2 - 1.6;
change = change.toFixed(2);
二.关系运算符
> < >= <= == != === !==
关系运算最后的结果一定是boolean类型
== 判断两个数据是否相等 值
!= 不等于, 判断两个数据是否不相等 值
=== 判断数值和类型是否完全相等
!== 判断数值和类型是否完全不相等
1.string 和 number 判断大小时, 浏览器会将字符串(string)隐式转换为number类型 用Number()函数
2.任何一个数据与NaN进行比较时,结果一定都是false 30a会被转换为NaN
例如:
console.log('30a'>5); // false NaN > 5
3.string和string之间判断大小 根据每个字符的unicode码作比较
三.赋值运算符
+= -= *= /= %= &= |= ^=
语法: a+=b 和 a = a + b 相同的效果
单目运算符: ++ -- !
双目运算符: + - * / % && || ^ & | > <
三目运算符:
需要三个操作数/表达式 表达式1 ? 表达式2 : 表达式3;
表达式1:运算结果应该为boolean类型
表达式1 = true 执行表达式2
表达式1 = false 执行表达式3
允许嵌套
四.逻辑运算符
作用:多个条件之间的判断关系
&& :多个条件都必须同时满足 见false则false
||: 满足其中一个条件即可 见true则true
! 取反
短路与:只要第一个条件 为假的话,整个表达式的结果都为假,并且不会去判断第二个条件
短路或:只要第一个条件为真的话,整个表达式结果就为真,并且不会去判断第二个条件时
五.位运算符
只能做数字的运算,且要将数字转换为二进制,再做运算
& :(按位与) 将两边的操作数转换成为二进制,每位的数字,只要对应都是1的时候,该位的结果才为1,否则该位结果为0
作用:判断奇偶性,比模的效率要高
判断数字与 1 做按位与 ,最后的一位 1为奇数 0为偶数
例如:
console.log( (10 & 1) === 0 ); true为偶数
console.log( (9 & 1) === 0 ); false为奇数
10: 1010 11: 1011
1 : 0001 1 : 0001
--------- --------
0000 0001
偶数 奇数
| :(按位或) 将两边的操作数转换成为二进制,比较每位上的数字,两个数字中有一个是1,则该位的结果就是1 ,否则 0
场合(作用):向下取整 位运算一定会将数据转换为二进制,而小数会被转换为整数
例如:
var num3 = 6.5;
console.log(num3 | 0);
^:( 异或)将两边的数字转换为二进制 进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则0
作用:交换两个数的值
例如:
交换num1 和num2的值
num1 = num1 ^ num2;——简写——num1 ^= num2;
num2 = num2 ^ num1;——简写——num2 ^= num1;
num1 = num1 ^ num2;——简写——num1 ^= num2;