JavaScript基础-Day2-流程控制
一.运算符(操作符)
运算符的分类:
运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
JavaScript中常用的运算符有:
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.1算数运算符
-
算术运算符概述
概念:算术运算使用的符号,用于执行两个变量或值的算术运算。
+:求和 -:求差 *:求积 /:求商 %:取模(取余数)
优先级: 先乘除后加减,有括号先算括号里面的~~~
1.2赋值运算符
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个容器
其他赋值运算符:
+= -= *= /= %=
使用这些运算符可以在对变量赋值时进行快速操作
1.3一元运算符
自增运算符的用法:
前置自增:++i
每执行1次,当前变量数值加1,其作用相当于 num += 1
- 前置自增:先自加再使用(记忆口诀:++在前 先加)
后置自增:i++
每执行1次,当前变量数值加1,其作用相当于 num += 1
- 后置自增:先使用再自加(记忆口诀:++在后 后加)
1.4比较运算符
比较运算符的介绍
作用:比较两个数据大小、是否相等
比较运算符:
<: 左边是否大于右边
<: 左边是否小于右边
>=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边是否相等
===: 左右两边是否类型和值都相等
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到true或false
细节:
字符串比较,是比较的字符对应的ASCII码
- 从左往右依次比较
- 如果第一位一样再比较第二位,以此类推
- 比较的少,了解即可
NaN不等于任何值,包括它本身
-
尽量不要比较小数,因为小数有精度问题
-
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
1.5逻辑运算符
符号 | 名称 | 读法 | 特点 | 口诀 |
---|---|---|---|---|
&& | 逻辑与 | 并且 | 符号两边都为true 结果才为true | 一假则假 |
|| | 逻辑或 | 或者 | 符号两边有一个 true就为true | 一真则真 |
! | 逻辑非 | 取反 | true变false false变true | 真变假,假变真 |
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
&& 左边为false就短路 || 左边为true就短路
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
1.6 运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ – ! |
3 | 算数运算符 | 先* / % 后 + - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先 && 后 || |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
- 一元运算符里面的逻辑非优先级很高
- 逻辑与比逻辑或优先级高
二.语句
2.1表达式和语句
表达式:
表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
语句:js 整句或命令,js 语句是以分号结束(可以省略) 比如: if语句 for 循环语句
区别:
表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
表达式: 3 + 4
语句 :alert()
弹出对话框 其实某些情况,也可以把表达式理解为语句,因为它是在计算结果,也是做事
2.2 分支语句
程序三大流程控制语句:顺序结构 分支结构 循环结构
分支语句:
分支语句可以让我们有选择性的执行想要的代码
分支语句包含: If分支语句 三元运算符 switch 语句
1. if语句
if语句有三种使用:单分支、双分支、多分支
单分支使用语法:if (条件) {}
双分支使用语法:if (条件) {} else {}
多分支使用语法:if (条件) {} if else {} if else {} else{}
2. 三元运算符
其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
符号:? 与 : 配合使用
语法: 条件 ? 满足条件执行的代码 : 不满足条件执行的代码
- 一般用来取值
3. switch语句
找到跟小括号里数据全等的case值,并执行里面对应的代码
若没有全等 === 的则执行default里的代码
语法:
switch (数据){
case 值1 :
代码1
break;
case 值2 :
代码2
break;
default :
代码n
break;
}
2.3 循环结构
1.while循环
语法:
while (循环条件) {
要重复执行的代码(循环体)
}
循环:重复执行某段代码, 而 while : 在…. 期间
循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程。
2.循环的退出
continue:结束本次循环,继续下次循环
break:跳出所在的循环
3.ATM案例
<script>
let str = ''
let money = 1000
while (str !== '4') {
str = prompt(`
请输入您要进行的操作:
1.存钱
2.取钱
3.查看余额
4.退出
`)
switch (str) {
case '1':
let cun = +prompt(`请输入您要存的金额:`)
money += cun
break
case '2':
let qu = +prompt(`请输入您要存的金额:`)
money -= qu
break
case '3':
alert(`您的余额是:${money}元`)
break
}
}
</script>