运算符分为:算术运算符,比较运算符、逻辑运算符、位运算符、赋值运算符、三目运算符。
1、算数运算符:
算数运算符 | ||||||
+ | - | * | / | % | ++ | -- |
加 | 减 | 乘 | 初 | 取余 | 自增,在原来的基础上加1 | 自减,在原来的基础上减1 |
1.取余:
①整除取余的值为0
②较小数除以大数,取余为较小数
2.自加
①单独使用自增,前置和后置没有区别
②让a的值在原来的基础上加1
3.自减
2、比较运算符
比较运算符 | ||||
> | < | >= | <= | != |
大于 | 小于 | 大于等于 | 小于等于 | 不等于 |
== | 等于 | 比较数值是否相同,会产生隐式转换 | ||
=== | 全等于 | 比较数值与类型 | ||
!== | 不全等于 | 特殊比较:undefined!==null |
①数字和字符串比较,字符串会转换为数值
②字符串之间比较,比较的是首个字符的编码
③NaN和任何值比较(> < >= <= == ===),结果都是false
3、逻辑运算符
逻辑运算符 | ||
&& | 逻辑与 | 关联的两个条件都是true,结果是true |
|| | 逻辑或 | 关联的两个条件有一个是true,结果是true |
! | 逻辑非 | 取反 |
|| 逻辑或 如果第一个条件为true,不再执行第二个条件;
&& 逻辑与 如果第一个条件为false,不在执行第二个条件。
示例习题:声明一个变量保存任意一个年份,判断是否为闰年,是为true,否则false(闰年:能被4整除,并且不能被100整除,或者能被400整除)
var year=1996
console.log(year%4==0 && year%100!=0 || year%400==0)4月11日
4、位运算符
模拟计算机底层的运算,先把值转为2进制再进行运算,运算完再把结果转回为10进制。
10进制: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
2进制: | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 |
2进制转为10进制:1100→0*20+0*21+1*22+1*23=0+0+4+8=12 10进制转为2进制:20→ 20-24=22 →10100 |
& | 按位与 | 上下两位比较,都是1结果是1,否则是0 |
| | 按位或 | 上下两位比较,含有1结果是1,否则是0 |
^ | 按位异或 | 上下两位比较,不同是1,否则是0 |
>> | 按位右移 | 按位右移,删除最后的位数;每移动1位除以2,如果是小数取整 |
<< | 按位左移 | 按位左移,在末尾补0;每移动1位,在原来基础上乘以2 |
5、赋值运算符
= += -= *= /= %= ...
赋值:+= 运算赋值,先执行运算,再执行赋值
6、三目运算符
一目运算符 | 由一个运算符连接了一个表达式 | eg:a++ a-- ! |
二目运算符 | 由一个运算符连接了两个表达式 | eg:3>1 |
三目运算符 | 由两个运算符连接了三个表达式 | 条件表达式 ? 表达式1 : 表达式2 |
三目运算:
语法 :条件表达式 ? 表达式1 : 表达式2
如果条件表达式为true,执行表达式1;如果条件表达式为false,执行表达式2