运算符(操作符)
运算符是用于实现赋值、比较和执行算数运算等功能的符号。常用运算符分类如下👇
算数运算符
递增和递减运算符
比较运算符
逻辑运算符
赋值运算符
「算数运算符」
运算符 |
描述 |
案例 |
---|---|---|
+ |
加 |
10+20=30 |
- |
减 |
10-20=-10 |
* |
乘 |
10*20=200 |
/ |
除 |
10/20=0.5 |
% |
取余(取模) |
返回除法的余数9%2=1 |
浮点数的精度问题
var result = 0.1 + 0.2;
// 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
// 结果不是 7, 而是:7.000000000000001
浮点数值的最高精度是17位小数,但是在进行算数运算时其精确度远远不如整数,所以不要直接判断两个浮点数是否相等!
表达式与返回值
表达式:由数字、运算符和变量组成的式子。
返回值:每一个表达式经过相应的运算之后,会有一个最终结果,称为表达式的返回值
「递增和递减运算符」
递增和递减运算符必须配合变量使用。
递增运算符
var num = 10;
alert(++num + 10); // 21 使用口诀:先自加,后返回值
var num1 = 10;
alert(10 + num1++); // 20 使用口诀:先返回原值,后自加
var num = 1;
var num2 = ++num + num++; //num = 2
console.log(num2);//4
var num = 1;
var num1 = 1;
var num2 = num++ + num1++; // 1 + 1
console.log(num2);//2
var num = 1;
var num2 = num++ + num++;// 1 + 2
console.log(num2); // 3
「比较运算符」
运算符 |
描述 |
案例 |
结果 |
---|---|---|---|
< |
小于号 |
1<2 |
true |
> |
大于号 |
1>2 |
false |
>= |
大于等于号(大于或者等于) |
2 >= 2 |
true |
<= |
小于等于号(小于或者等于) |
3 <= 2 |
false |
== |
判等号(会转型) |
15 == '15' |
true |
!= |
不等号 |
37 != 37 |
false |
|
全等 全不等(要求值和数据类型都一致) |
37 === '37' |
false |
「逻辑运算符」
逻辑运算符是用来进行布尔值运算的运算符
短路运算:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
运算符 |
描述 |
案例 |
特点 |
---|---|---|---|
&& |
"逻辑与",简称"与" and |
true && false |
两边都是 true才返回 true |
|| |
"逻辑或",简称"或" or |
true |
有真为真 |
! |
"逻辑非",简称"非" not |
!true |
取反 |
「赋值运算符」
运算符 |
描述 |
案例 |
---|---|---|
= |
直接赋值 |
var userName = 'fan' |
+= -= |
加减一个数后再赋值 |
var age=5; age+=5 |
*= /= %= |
乘、除、取模后再赋值 |
var age=5; age*=5 |
「运算符优先级」
优先级 |
运算符 |
顺序 |
---|---|---|
1 |
小括号 |
() |
2 |
一元运算符 |
! ++ -- |
3 |
算数运算符 |
先* / % 后+ - |
4 |
关系运算符 |
> >= < <= |
5 |
相等运算符 |
! ! |
6 |
逻辑运算符 |
先&& 后|| |
7 |
赋值运算符 |
= |
8 |
逗号运算符 |
, |
流程控制
流程控制在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,代表三种代码执行的顺序。
「分支流程控制」
// 1. 条件成立执行的代码语句
if (条件表达式) {
}
// 2.if else 语句
if (条件表达式) {
// [如果] 条件成立执行的代码
} else {
// [否则] 执行的代码
}
// 3. if else if 语句(多分支语句)
// 适合于检查多重条件。
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3) {
语句3;
....
} else {
// 上述条件都不成立执行此处代码
}
「三元表达式」
//如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值
表达式1 ? 表达式2 : 表达式3;
switch分支流程控制它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用 switch。
switch( 表达式 ){
case value1:
// 表达式 等于 value1 时要执行的代码
break;
case value2:
// 表达式 等于 value2 时要执行的代码
break;
default:
// 表达式 不等于任何一个 value 时要执行的代码
}