day02 流程控制
运算符
算术运算符
- +:求和
- -:求差
- *:求积
- /:求商
- %:取余(取余数(除完剩下的值))
赋值运算符
赋值简便写法
- +=
- -=
- *=
- /=
- %=
读取顺序
-
先+ :age + 5
-
后=:age =age = age + 5
// age += 5 // 等价于: age = age + 5
调试工具
debugger

一元运算符
问题:a+=1是几元运算符? a=a+1 ( 二元)
自增自减:
-
⭐重点:前置、后置在不参与运算时(单独的语句)结果时一样的,都会把加完的值返回;当参与运算时才会出现不一样的结果
-
++放在变量的后面,是先使用这个变量,在下一次再使用这个变量时就已经加好了
(不拘泥于是否下一个是前置还是后置,只要遇到下一个自己,就要提前算好,再给人家)
let i =1 ; console.log(i++ + ++i + i); // i = 1 //遇见下一个自己了 后置自增必须开始 i=2 //前置自增直接生效 i=3 //总结:1 (i=2)+(i=3) 3 + 3 =7 -
注意
-
这样连续的后置自增要特别注意,使用后置自增改变后的使用是在下一次
-
比如下面的案例,并不是10+5=15;age=11 ;15+(11+1)=27,最后一个不是在运算过程中计算,是执行赋值
console.log(c++ + 5 + c++) // 26 10+5=15 age=11 15+11=26 age=12 -
++在变量的前面,先执行自增或自减,再使用这个变量
-
比较运算符
-
>: 左边是否大于右边
-
<: 左边是否小于右边
-
=: 左边是否大于或等于右边
-
<=: 左边是否小于或等于右边
-
==: 左右两边是否相等,将两边的数据进行转换为数值(值相等)
-
===: 左右两边是否类型和值都相等
-
!==: 左右两边是否类型和值不全等
-
!= : 左右两边是否值不全等
比较结果为boolean类型,即只会得到true或false
console.log('2 == 2: ', '2' == 2);//true
-
注意
-
NaN不等于任何值,包括它本身
-
尽量不要比较小数,因为小数有精度问题
-
-
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
逻辑运算符
类型
| 符号 | 名称 | 日常读法 | 特点 | 口诀 |
|---|---|---|---|---|
| && | 逻辑与 | 并且 | 符号两边都为true结果才为true | 一假则假 |
| || | 逻辑或 | 或者 | 符号两边有一个true就为true | 一真则真 |
| ! | 逻辑非 | 取反 | true变false false变true | 真变假,假变真 |
使用技巧
短路
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
1 > 2 || console.log('会输出');
1 < 2 || console.log('不会输出')
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
res = 0 && 1
if(res==0){
console.log('yes')
}else{
console.log('error')
}
| 符号 | 短路条件 |
|---|---|
| && | 左边为false就短路 |
| || | 左边为true就短路 |




⭐逻辑为假的数据类型
false null undefined "" 0 NaN
⭐逻辑为真的数据类型
true "字符串里面有值" 数字非0(包括负数) 数组Array 对象Object

运算符优先级
计算判断赋值

注意:
一元运算符里面的逻辑非优先级最高
逻辑与(&&)比逻辑或(||)优先级高
优先级不等于执行顺序,执行顺序永远是从上到下,从左到右
语句
表达式和语句
- 表达式:
表达式通常会在原地返回一个值; 代码较短
console.log(x=7)// 7
- 语句:
js 整句或命令,用来描述一件事情,代码量比较长
比如: if语句 for 循环语句
分支语句
- If分支语句
- 单分支
- 双分支(三元表达式)
- 多分支



-
三元运算符
其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
符号:? 与 : 配合使用 -
语法
![image-20220416180019535]()
// 任意俩数中最大值,返回最大值
function getMax(nu1,nu2){
// 判断
if(nu1 > nu2){
return nu1;
}else{
return nu2;
}
//同样效果
return nu1 > nu2 ? nu1 :nu2;
}
循环语句
断点与调试
1、debugger
2、在debugger的前提下,打开谷歌浏览器单击行代码

while 循环
语法
while(循环条件){
需要重复执行的代码(循环体)
}
循环三要素
- 变量起始值
终止条件(没有终止条件,循环会一直执行,造成死循环)
变量变化量(用自增或者自减)



浙公网安备 33010602011771号