运算符
**运算符(operator):**也称操作符,是用于实现赋值、比较和执行算术运算等功能的符号
运算符分类:
算术运算符:用于执行两个变量或值的算术运算
+(加)、-(减)、(乘)、/(除)、%*(取余数,取模)
浮点数,在算术运算里面会有问题,不要直接用小数来进行比较是否相等;因为浮点数值的最高精度是17位小数,但在进行算术运算时其精确度远远不如整数。
<script>
// 不能直接拿着浮点数来进行比较是否相等
var num = 0.2 + 0.3;
console.log(num == 0.3); //false
</script>
怎样判断一个数能够被整除:它的余数是0,就说嘛这个数能被整除,这是%取余运算符的主要用途
算术运算符是有优先级的,先乘除,后加减,有括号就先算小括号里面的
表达式和返回值
表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得到的组合(就是由数字、运算符、变量等组成的式子)
程序的运算思路:把右边的表达式计算完毕后,把返回值赋值给左边的变量。
返回值:就是表达式的结果
递增/递减运算符:
递增(++)和递减(–)既可以放在变量前面,也可以放在变量后面;放在变量前面时,我们可以称为前置递增(递减)运算符,放在变量后面时,我们可以称为前置递增(递减)运算符。
注意:递增和递减运算符必须要和变量配合使用
1.前置递增运算符
++num前置递增,就是自加1,类似于num=num+1,
<script>
// 1.前置递增
var age = 10;
++age;
console.log(age); //11
// 3.先加1,后再返回值
var p = 20;
console.log(++p); //21
</script>
2.后置递增运算符
num++后置递增,就是自加1,类似于num=num+1,
<script>
var num = 20;
num++;
console.log(num); //21
// 前置自增和后置自增如果单独使用,效果是一样
// 后置自增口诀:先返回值,后自加
var num1 = 30;
console.log(num1++ + 10); //40
console.log(num1); //31
</script>
注意:
1.后置:先原值运算,后加1(先人后己)
2.前置:先自加,后运算(先己后人)
3.前置自增和后置自增如果单独使用,效果是一样
比较运算符:
比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果
<
=
<=!=
!==
<script>
console.log(3 >= 5); //false
console.log(1 <= 3); //true
console.log(3 == 5); //false
console.log('a' == 'b'); //false
// 程序里面的等于符号是 == ,默认转换数据类型,会把字符串型的数据转换成数字型,要求两侧的数据数值大小相等就可以
console.log(18 == '18'); //true
// 程序里有全等的概念,一模一样;全等(三个等号):两侧数据类型和数值大小完全一样
</script>
=:赋值作用,把右边赋值给左边
==:判断,判断两边的值是否相等(注意此时有隐式转换)
===:全等,判断两边的值和数据类型是否完全相同
逻辑运算符
概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值,开发中经常用于多个条件的判断
分类:
&&(逻辑与,与,and)
||(逻辑或,或,or)
!(逻辑非,非,not)
<script>
// 1.逻辑与 &&,and:两侧都为true时,结果才是true;只要有一侧为false,则结果就是false
console.log(3 > 5 && 3 > 2); //false
console.log(1 < 2 && 5 < 9); //true
// 2.逻辑或 ||,or,两则都为假,结果才是假,否则都是真
console.log(2 > 3 || 5 > 3); //true
console.log(3 < 1 || 5 > 8); //false
// 3.逻辑非 !, not,
console.log(!true); //false
</script>
1.逻辑与 &&,and:两侧都为true时,结果才是true;只要有一侧为false,则结果就是false
2.逻辑或 ||,or,两则都为假,结果才是假,否则都是真
3.逻辑非 !, not,非假即真,非真即假
短路运算(逻辑中断):
短路原酸的原理:当有多个表达式(值)时,左边的表达质值可以确定结果是,就不再继续运算右边的表达式的值
语法:表达式1&&表达式2
1.逻辑与:
如果表达式1为真时,则返回表达式2 123&&456——>123
如果表达式1为假时,则返回表达式1 0&&12——>0(除了0为假,其他数值都为真)
如果有空的或者否定的为假(0,’’,null,undefined,NaN),其余的为真
2.逻辑或
如果表达式1为真,则返回表达式1;
如果表达式1为假,则返回表达式2
赋值运算符
概念:用来吧数据赋值给变量的运算符
=、+=、-=、*=、/=、%=
运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++、–、! |
3 | 算术运算符 | 先/%后±* |
4 | 关系运算符 | >、>=、<、<= |
5 | 相等运算符 | 、!=、=、!== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高