目录
一、什么是运算符?
运算符也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号
二、算数运算符
用于执行两个变量或值的算数运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1+1=2 |
- | 减 | 2-1=1 |
* | 乘 | 1*1=1 |
/ | 除 | 4/2=2 |
% | 取余数(取模) | 5%2=1 |
1.整数
console.log(1 + 1); //2
console.log(1 - 1); //0
console.log(1 * 1); //1
console.log(1 / 1); //1
console.log(5 % 2); //1
console.log(3 % 5); //3
2.浮点数
浮点数的最高精度是17位小数,但在进行算数计算时其精确度不如整数
- 不要直接判断两个浮点数是否相等
- 求一个数是否可以被整除查看余数是否为0
- 有优先级(先乘除后加减有括号先算括号里的)
3.表达式和返回值
表达式:由数字、运算符、变量等组成的式子
返回值:表达式最终的结果返回给我们称为返回值
console.log(1 + 1);
// 1 + 1 =2
// 在程序里 把右边表达式计算完把返回值给左边
var num = 1 + 1;
三、递增(++)和递减(--)运算符
- 给一个变量反复加1或减1
- 必须配合变量使用
1.前置递增(递减)运算符
递增(++)递减(--)放在变量前面称为前置递增(递减)运算符
//前置运算符 先加1后返回值
var age = 10;
++age; //类似于age = age + 1
console.log(age);//11
先自加再返回值
2.后置递增(递减)运算符
递增(++)递减(--)放在变量后面称为后置递增(递减)运算符
//后置运算符
var num = 10;
num++;
console.log(num); //11
先返回原值后自加
var age = 10;
console.log(age++ + 10); //20
console.log(age); //11
3.案例
//案例1
var a = 10;
++a; //++a=11 a=11
var b = ++a + 2; //++a=12 a=12
console.log(b); //14
//案例2
var c = 10;
c++; //c++=11 c=11
var d = c++ + 2; //c++=11 c=12
console.log(d); //13
//案例3
var e = 10;
var f = e++ + ++e; //1.e++=10 e=11 2.++e=12 e=12
console.log(f); //22
4.总结
- 单独使用时,运行结果相同
- 与其它代码连用结果不同
- 后置:先返回再自加(先人后己)
- 前置:先自加再返回 (先己后人)
- 开发时使用后置较多
四、比较运算符
两个数据进行比较时所使用的的运算符,返回布尔值(true/false)
运算符名称 | 说明 | 案例 | 结果 |
---|---|---|---|
< | 小于号 | 1<2 | true |
> | 大于号 | 1>2 | false |
>= | 大于等于号 | 2>=2 | true |
<= | 小于等于号 | 1<=2 | true |
== | 等于号 | 1==1 | true |
!= | 不等号 | 1!=1 | flase |
=== !== | 全等 不全等 | 1==='1' | flase |
console.log(3 >= 5); //flase
console.log(2 <= 8); //true
console.log(3 == '3'); //true 会把字符型转换成数字型
console.log(3 != 3); //flase
console.log(3 === '3'); //flase 要求值和数据类型一样
五、逻辑运算符
用来进行布尔值运算的运算符,返回值也是布尔值,用于多个条件的判断
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | ‘逻辑与’,and | true&&salse |
|| | '逻辑或',or | true||false |
! | '逻辑非',not | !true |
1.逻辑与
两侧都为true结果为true,有一侧是flase结果为flase
//一个为假就为假
console.log(3 > 5 && 3 > 2); //flase
//两个为真就为真
console.log(2 > 1 && 3 == 3); //true
//两个为假就为假
console.log(10 > 20 && 3 > 5); //flase
2.逻辑或
两侧都为flase结果为flase;有一侧为true结果就是true
//一真一假
console.log(3 > 5 || 3 > 2);
//两假
console.log(3 > 5 || 3 < 2);
3.逻辑非
取反符,用来取一个布尔值相反的值
//not
console.log(!true);//flase
4.短路运算(逻辑中断)
4.1逻辑与
- 语法:表达式1&&表达式2
- 如果表达式1为真,返回表达式2
- 如果表达式1为假(0,' ',null,undefined,NaN),返回表达式1
console.log(123 && 456); //456
console.log(0 && 456); //0
console.log(0 && 1 + 2 && 4 + 5 + 6); //0
console.log('' && '张三'); //''
4.2逻辑或
- 语法:表达式1&&表达式2
- 如果表达式1为真,返回表达式1
- 如果表达式1为假(0,' ',null,undefined,NaN),返回表达式2
console.log(123 && 456); //123
console.log(0 && 456); //456
console.log(0 && 1 + 2 && 4 + 5 + 6); //3
console.log('' && '张三'); //'张三'
逻辑中断很重要可能会影响程序的运行结果
var num = 0;
console.log(123 || num++);//123
console.log(num); //0
六、赋值运算符
用来把数据赋值给变量的运算符
赋值运算符 | 说明 | 案例 |
---|---|---|
= | 直接赋值 | var myName='张三' |
+=、-= | 加、减一个数后再赋值 | var age = 10;age+=5;//15 |
*=、/=、%= | 乘、除、取模后再赋值 | var age = 2;age*=5;//10 |
var num = 10;
num += 2;
console.log(num); //12
var age = 2;
age *= 3;
console.log(age); //6
七、运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ! ++ -- |
3 | 算数运算符 | 先* / %后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == !== === !=== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |