「运算符」是用于实现赋值、比较和执行算数运算等功能的符号。常用运算符分类如下??符号
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
算数运算符
运算符 | 描述 | 案例 |
---|---|---|
+ | 加 | 10+20=30 |
- | 减 | 10-20=-10 |
* | 乘 | 10*20=200 |
/ | 除 | 10/20=0.5 |
% | 取余(取模) | 返回除法的余数9%2=1 |
浮点数的精度问题
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
var val = 0.07 * 100; // 结果不是 7, 而是:7.000000000000001
- 浮点数值的最高精度是17位小数,但是在进行算数运算时其精确度远远不如整数,所以不要直接判断两个浮点数是否相等!
递增和递减运算符
var num = 10;
alert(++num + 10); // 21 使用口诀:先自加,后返回值
var num1 = 10;
alert(10 + num1++); // 20 使用口诀:先返回原值,后自加
var num = 1;
var num2 = ++num + num++; //num = 2
console.log(num2);//4
var num = 1;
var num1 = 1;
var num2 = num++ + num1++; // 1 + 1
console.log(num2);//2
var num = 1;
var num2 = num++ + num++;// 1 + 2
console.log(num2); // 3
比较运算符
运算符 | 描述 | 案例 | 结果 |
---|---|---|---|
< | 小于号 | 1<2 | true |
> | 大于号 | 1>2 | false |
>= | 大于等于号(大于或者等于) | 2 >= 2 | true |
<= | 小于等于号(小于或者等于) | 3 <= 2 | false |
== | 判等号(会自动转型) | 15 == ‘15‘ | true |
!= | 不等号 | 37 != 37 | false |
=== !=== |
全等 全不等(要求值和数据类型都一致) | 37 === ‘37‘ | false |
逻辑运算符
逻辑运算符是用来进行布尔值运算的运算符。
运算符 | 描述 | 案例 | 特点 |
---|---|---|---|
&& | "逻辑与",简称"与" and | true && false | 两边都是 true才返回 true |
|| | "逻辑或",简称"或" or | true | 有真为真 |
! | "逻辑非",简称"非" not | !true | 取反 |
逻辑运算符两边也可以是表达式
短路运算:当有多个表达式(值)时,若左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
// 逻辑与短路运算 如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1
console.log(123 && 456); // 456
console.log(0 && 456); // 0
console.log(0 && 1 + 2 && 456 * 56789); // 0
console.log(‘‘ && 1 + 2 && 456 * 56789); // ‘‘
// 逻辑或短路运算 如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
console.log(123 || 456); // 123
console.log(123 || 456 || 456 + 123); // 123
console.log(0 || 456 || 456 + 123); // 456
// 逻辑中断很重要 它会影响我们程序运行结果
var num = 0;
console.log(123 || num++);
console.log(num); // 0
看到这可能有点懵,到底返回哪个值,有个理解诀窍:不管是逻辑与还是逻辑或的短路运算,返回结果都是可最终确定结果的那个值
赋值运算符
运算符 | 描述 | 案例 |
---|---|---|
= | 直接赋值 | var userName = ‘fan‘ |
+= -= | 加减一个数后再赋值 | var age=5; age+=5 |
*= /= %= | 乘、除、取模后再赋值 | var age=5; age*=5 |
运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ! ++ -- |
3 | 算数运算符 | 先* / % 后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&& 后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
- 优先级逐级递减,即括号优先级最高,逗号最低
- 优先级逻辑与
&&
> 逻辑或||