常用运算符
运算符也被成为操作符,是实现赋值,比较和执行算数运算等功能的符号
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.算数运算符
运算符 | 描述 | 实例 |
+ | 加 | 10+20=30 |
- | 减 | 20-10=10 |
* | 乘 | 10*20=200 |
/ | 除 | 20/10=2 |
% | 取余数 | 20%9=2 |
代码:
<script>
/* 加法 */
console.log(10+20);//30
/* 减法 */
console.log(20-10);//10
/* 乘法 */
console.log(10*20);//200
/* 除法 */
console.log(20/6);//3.3333333~
/* 取余数 */
console.log(20%9);//2
</script>
2.浮点数的精度问题
浮点数的最高精度是17位小数,但在运行算数计算时其精度远远不如整数。
代码:
/* 浮点数的精度问题 */
console.log(0.1+0.2);//0.30000000000000004
console.log(0.07*100);//7.000000000000001
var num=0.1+0.2;
console.log(num==0.3);//false
3.递增和递减运算符
如果反复的给数字变量添加或减去1,可以使用递增(++)和递减(--)运算符来完成。
(++)和(--)既可以放在变量的前面,也可以放在变量的后面,放在变量的前面,叫做前置递增(递减)运算符,放在变量的后面,叫做后置递增(递减)运算符。
‘注意’:递增和递减运算符必须和变量进行配合使用。
<script>
/* 递增 */
var num1=1;
num1++;
console.log(num1);//2
/* 递减 */
var num2=1;
num2--;
console.log(num2);//0
/* 前置递增 先自加1,后返回值 */
var age1=10;
console.log(++age1+10);//21
console.log(age1);//11
/* 后置递增 先返回值,后自加1 */
var age2=10;
console.log(age2++ +10);//20
console.log(age2);//11
</script>
前置运算符和后置运算符单独使用时没有什么区别,运行结果相同。
4.比较运算符
比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值。 (true和false作为比较运算的结果)。
运算符名称 | 说明 | 案例 | 结果 |
< | 小于号 | 1<2 | true |
> | 大于号 | 1>2 | false |
>= | 大于等于号 | 2>=2 | true |
<= | 小于等于号 | 2<=2 | true |
== | 判等号(会转型) | 37=='37' | true |
!= | 不等号 | 37!=37 | false |
=== !== | 全等 要求值和数据类型都相同 | 37==='37' | false |
代码:
<script>
/* 大于号 */
console.log(2>1);//true
/* 小于号 */
console.log(2<1);//false
/* 大于等于 */
console.log(2>=2);//true
/* 小于等于 */
console.log(2<=2);//true
/* 等于号 */
console.log(2==2);//true
/* 不等号 */
console.log(2!=2);//false
/* 全等号 */
console.log(2==='2');//false
</script>
符号 | 说明 | 案例 |
= | 赋值(将等号右面的值赋给等号左边的值) | var num=10; num=10; |
== | 判等号,判断左右两边的值(会进行隐式转换) | 18='18' true |
=== | 全等号 判断左右类型和数值是否相等 | 18='18' false |
5.逻辑运算符
逻辑运算符是进行布尔值的运算符,其返回值也是布尔值,后面进行多个条件的判断。
符号 | 说明 | 案例 |
&& | 逻辑与 简称与 and | true&&false false |
|| | 逻辑或 简称或 or | true||false true |
! | 否 not | !true false |
代码:
<script>
/* 逻辑与 只有都为true 结果才是true 有一个为false 结果就是false */
console.log(3>5&&3>2);//false
console.log(3<5&&3>2);//true
/* 逻辑或 只要都为false 结果才是false 有一个为true 结果就是true */
console.log(3>5||3<2);//false
console.log(3>5||3>2);//true
</script>
1.短路运算(逻辑与)
如果第一个表达式为true ,则返回第二个表达式,如果第一个表达式为false,则返回第一个表达式
代码:
<script>
/* 如果第一个表达式为true 则返回表达式2 如果第一个表达式为假,则返回表达式1 */
console.log(123&&456);//456
console.log(0&&123&&456*123);//0
</script>
2.短路运算(逻辑或)
第一个表达式为true时,返回第一个表达式的值,第一个表达式为false时,则返回第二个表达式的值。
代码:
<script>
/* 第一个表达式为true时,返回第一个表达式的值,第一个表达式为false时,则返回第二个表达式的值 */
console.log(123||456);//123
console.log(0||456);//456
console.log(0||123||456);//123
</script>
3.短路中断
代码:
<script>
/* 短路中断逻辑与 */
var num=0;
console.log(0&&num++);//0
console.log(num);//0
/* 短路中断逻辑或 */
var num1=0;
console.log(123||num1++);//123
console.log(num1);//0
</script>
6.赋值运算符
符号 | 说明 | 案例 |
= | 直接赋值 | var age=5; 5 |
+= -= | 先加减等号右边的值后再进行赋值 | var age=10; age+=10; 20 age-=10 ; 10 |
*= /= %= | 先乘以 除以 取余后进行赋值 | var num=10; num*=10; 100 num/=10; 10 num%=5; 0 |
代码:
<script>
/* = 直接赋值 */
var num1=1;
console.log(num1);//1
/* += -= */
var num2=1;
console.log(num2+=1);//2
console.log(num2-=1);//1
/* *= /= %= */
var num3=10;
console.log(num3*=10);//100
console.log(num3/=10);//10
console.log(num3%=5);//0
</script>