JavaScript基础之运算符
文章目录
前言
运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号
1.算术运算符
概念:算术运算使用的符号,用于执行两个变量或值的算术运算
运算符 | 描述 | 实例 |
---|---|---|
+ |
加 | 10 + 20 =30 |
- |
减 | 10 - 20 =-10 |
* |
乘 | 10 * 20 =200 |
/ |
除 | 10 / 20 =0.5 |
% |
取余数(取模) | 返回出发的余数 9 % 2 =1 |
1.1浮点数的精度问题
浮点数值的最高精度是17位小数,但在进行算数计算时其精确度远远不如整数
<script> console.log(0.2 + 0.4); //0.6000000000000001 console.log(0.2 * 0.4); //0.08000000000000002</script>
tips:
- 非必要,不要用浮点数进行计算,容易出现精度误差
1.2递增和递减运算符
递增和递减运算符分为前置和后置,例如(i++)是后置,(++i)是前置,具体区别参见下文
①前置递增运算符
使用口诀:先自加,后返回值
<script> var index = 3; console.log((index++) + 1); //4 console.log(index); //3</script>
②后置递增运算符
使用口诀:先返回原值,后自加
<script> var index = 3; console.log((++index) + 1); //5 console.log(index); //3</script>
③总结
- 前置递增和后置递增运算符可以简化代码的编写,让变量的值 + 1 比以前写法更简单
- 单独使用时,运行结果相同,与其他代码联用时,执行结果会不同
- 开发时,大多使用后置递增/减,并且代码独占一行
2.比较(关系)运算符
比较运算符是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true / false)作为比较运算的结果。
运算符名称 | 说明 | 举例 | 结果 |
---|---|---|---|
< |
小于号 | 2 < 3 | true |
> |
大于号 | 3 > 2 | false |
>= |
大于等于号(大于或者等于) | 1 >= 1 | true |
<= |
小于等于号(小于或者等于) | 5 <= 4 | false |
== |
判等号(会转型) | 15==15 | true |
!= |
不等号 | 18 != 18 | false |
=== |
全等,要求值和数据类型都一致 | 18 === ‘18’ | false |
3.逻辑运算符
逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值
逻辑运算符 | 说明 | 案例 | 结果 |
---|---|---|---|
&& |
“逻辑与”,简称"与" and | true && false |
false |
|| |
“逻辑或”,简称"或" or | true || false |
true |
! |
“逻辑非”,简称"非" not | !true |
false |
<script> if (3 > 0 && -1 < 0) console.log('true'); //true else console.log('false'); if (!3 || 3 < 0) console.log('true'); //true else console.log('false');</script>
4.短路运算
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
①逻辑与
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
<script> var index = 0; console.log(3 && (++index)); //3,执行语句1后直接输出结果3 console.log(index); //0,index的值没有变</script>
②逻辑或
- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
<script> var index = 0; console.log(3 || (++index)); //true console.log(index); //0</script>
5.赋值运算符
赋值运算符用来把数据赋值给变量的运算符
赋值运算符 | 说明 | 举例 |
---|---|---|
= |
直接赋值 | var index=18; |
+= ,-= |
加,减一个数后再赋值 | var index=3; index+=2;//5 |
*=,/=,%= |
成,除,取模后再赋值 | var age=1; age*=3; //3 |
<script> var index = 10; console.log(index); //10 index += 5; console.log(index); //15 index *= 4; console.log(index); //60</script>