1、运算符
运算符(operator)也称为操作符,是用于实现赋值,比较和执行算法等功能的符号。
2、算数运算符
2.1 概念
算数运算使用的符号,用于执行两个变量或值得算术运算。
2.2 类型
加减乘除和取余(%),习惯在运算符两侧敲一个空格。
console.log(10%3); //1
2.3浮点数参与运算会有误差
// 浮点数 console.log(0.1 + 0.2); //0.30000000000000004 console.log(0.07 * 100); //7.000000000000001
算数运算符也是有优先级的,先乘除,后加减,有括号先算括号。
2.4 表达式和返回值
表达式:是由数字,运算符,变量等组成的式子
返回值:表达式都会有一个结果,返回给我们,我们称之为返回值
比如:1+1是表达式 2是返回值
在程序里面,表达式写右边,返回值放左边
var num = 1 + 1;
3、递增和递减运算符
3.1 递增和递减运算符概述
-
如果需要反复给数字变量加一或者减一,可以使用递增(++)和递减(--)运算符来完成。
-
在JavaScript中,可以将递增或者递减运算符放在前面或者后面,放在前面叫前置递增(递减)运算符,放在后面叫后置递增(递减)运算符。
3.1.1 前置递增运算符
先自增,后返回值
// 前置递增 先加1,后返回值 var p = 10; console.log(++p + 10); //21
3.1.2 后置递增运算符
先返回值,后自加
// 后置自增,先返回原值,后自加1 var num = 10; console.log(num++ + 10); //20 console.log(num); //11
注意:前置自增和后置自增如果单独使用效果是一样的。
小试牛刀:
var e = 10; console.log(e++ + ++e); //22
4、比较运算符
4.1 比较运算符类型
运算符名称 | 说明 | 案例 | 结果 |
---|---|---|---|
< | 小于号 | 1<2 | true |
> | 大于号 | 1>2 | false |
>= | 大于或者等于 | 2>=2 | true |
<= | 小于或者等于 | 3<=2 | false |
== | 判等号(会转型) | 37=='37' | true |
!= | 不等号 | 37!=37 | false |
=== !== | 全等,要求值和数据类型都一致 | 37==='37' | false |
注意:==会把字符串类型的数据转换为数值型,而===是全等,要求值和数据类型都一样。
4.2 =小结
符号 | 作用 | 用法 |
---|---|---|
= | 赋值 | 把右边给左边 |
== | 判断 | 判断两边值是否相等,注意有隐式转换 |
=== | 全等 | 判断两边的值是否完全相同 |
5、逻辑运算符
5.1 逻辑运算符分类
逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断。
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | "逻辑与",简称"与" and | true&&false //false |
|| | "逻辑或",简称"或" or | true||false //true |
! | "逻辑非",简称"非" not 取反 | !true //false |
5.2 短路运算(逻辑中断)
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。
5.2.1 逻辑与短路运算
-
如果表达式1为真,则返回表达式2;如果表达式1为假,则返回表达式1。
console.log(123 && 456); //456 console.log(0 && 456); //0 console.log(123 && 653 && 865); //865 console.log(736 && 0 && 258); //0
5.2.2 逻辑或短路运算
-
如果表达式1结果为真,则返回表达式1;如果表达式结果为假,则返回表达式2。
console.log(123 || 456); //123 console.log(0 || 345); //345
5.2.3 逻辑中断,短路操作
var num = 0; console.log(635 || num++); console.log(num); //0
var num = 0; console.log(0 || num++); console.log(num); //1
6、赋值运算符
概念:用来把数据赋值给变量的运算符。
赋值运算符 | 说明 |
---|---|
= | 直接赋值 |
+=、-= | 加减一个数之后再赋值 |
*=、/=、%= | 乘除、取模后再赋值 |
var num = 10; // num = num + 2; num += 2; console.log(num); //12 var age = 2; age *= 3; console.log(age); //6
7、运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ 、--、! |
3 | 算数运算符 | 先*/%,后+- |
4 | 关系运算符 | >、 >=、 <、 <= |
5 | 相等运算符 | ==、!=、===、!== |
6 | 逻辑运算符 | 先&&,后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
-
逻辑与比逻辑或优先级高