一、运算符
1.1赋值运算符
目标:能够使用赋值运算符简化代码
- 赋值运算符:对变量进行赋值的运算符
- 已经学过的赋值运算符:= 将等号右边的值赋给左边,要求左边必须是一个容器
- 其他赋值运算符:
+=
-=
*=
/=
%=
let num = 1
num += 2
num = 3
1.2一元运算符
目标:能够使用一元运算符做自增运算
众多的JavaScript的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
- 二元运算符
let num = 10 + 20
- 一元运算符
- 例如:正负
- 问题:我们以前让一个变量每次+1,以前我们做什么?
let num = 1
num = num + 1
- 自增:
- 符号:++
- 作用:让变量的值+1
- 自减
- 符合:–
- 作用:让变量的值-1
- 使用场景:经常用于计数来使用,比如进行10次操作,用它来记录进行了多少次
前置自增:先自加再使用(++在前 先加)
**后置自增:**先使用再自加(++在后 后加)
注:单独使用没有差别
1.3比较运算符
- 使用场景:比较两个数据大小、是否相等
- 实际用例:
- ==:左右两边值是否相等 赋值
- ===: 左右两边是否类型和值都相等 判断
- !==:左右两边是否不相等 全等
- 判断是否相等,强烈推荐使用===
字符串比较,比比较的字符对应的ASCI码
- 从左往右依次比较
- 如果第一位一样再比第二位,以此类推
- 比较的少,了解即可
NaN不等于任何值,包括它本身
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 如果进行精确的比较更建议用=或!
1.4逻辑运算符
想判断一个变量num是否大于5且小于10
- 错误写法:5 < num < 10
- 正确写法:num > 5 && num < 10
1.5运算符优先级
二、语句
2.1表达式和语句
- 表达式
表达式是可以被求值的代码,JavaScript引擎会将其计算出一个结果
- 语句
语句是一段可以执行的代码
比如:prompt()可以弹出一个输入框,还有if语句 for循环语句等等
区别:
表达式:因为表达式可以被求值,所以可以写在赋值语句的右侧
- 表达式 num = 3 + 4
语句**:而语句不一定有值,所以比如alert() for和break等语句就不能被用于赋值。**
- 语句 alert()弹出对话框 console.log()控制台打印输出
某些情况,也可以把表达式理解为表达式语句,因为它是在计算结果,但不是必须的成分(例如continue语句)
2.2分支语句
程序三大流程控制语句
- 从上往下执行,这种叫顺序结构
- 有时候需要根据条件执行代码,这种叫分支结构
- 某段代码被重复执行,就叫循环结构
分支语句
- 分支语句可以让我们有选择性的执行想要的代码
- 分支语句包含:
- if分支语句
- 三元运算符
- switch语句
1.if语句
-
if语句有三种使用:单分支、双分支、多分支
-
单分支的使用语法:
括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型,会发生隐式转换为布尔类型
如果大括号只有一个语句,大括号可以省略,但是,不提倡 -
双分支if语法
三元运算符
- 使用场景:其实是比if双分支更简单的写法,可以使用三元表达式
- 符号:?与:配合使用
- 语法
- 一般用来取值
数字补0
需求:用户输入1个数,如果数字小于10,则前面进行补0,比如09 03
分析:
①:为后面页面显示时间做铺垫
②:利用三元运算符补0计算
<script>
let num = prompt('请输入一个数')
num = num < 10 ? 0 + num : num
document.write(num)
</script>
switch语句
释义;
- 找到跟小括号里面数据全等的case值,并执行里面对应的代码
- 若没有全等 === 的则执行default里的代码
- 例如:数据若跟值2全等,则执行代码2
1.switch case语句一般用于等值判断,不适合区间判断
2.switch case一般需要配合break关键字使用,没有bread会造成case穿透
2.3循环语句
断点调试
- 浏览器打开调试界面
- 按F12打开开发者工具
- 点到sources一栏
- 选择代码文件
while循环
循环:重复执行一些操作,while:在…期间,所以while循环就是满足条件期间,重复执行某些代码。
路径:
1、while循环基本语法
释义:
- 跟if语句很像,都要满足小括号里的条件为true才会进入循环体执行代码
- while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
2、while循环三要素:
循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程
所以,while循环需要具备三要素
1.变量起始值
2.终止条件(没有终止条件,循环会一直执行,造成死循环)
3.变量变化量(用自减或自增)
用户输入确定循环次数
<body>
<script>
let i = 1
let num = +prompt('请输入循环次数')
while (i <= num) {
document.write(`我会循环${num}次 <br>`)
i++
}
</script>
输出1到100的偶数和
<script>
let i = 1
let sum = 0
while (i <= 100) {
if (i % 2 === 0) {
sum += i
}
i++
}
alert(`和为${sum}`)
3、循环退出
- break:退出循环
- continue:结束本次循环,继续下一次循环
三、综合案例
需求:用户可以存钱、取钱、查看余额和退出功能
分析:
①:循环的时候,需要反复提示输入框,所以提示框写到循环里
②:退出的条件是用户输入了4,如果是4,则结束循环,不再弹窗
③:提前准备一个金额预先存储一个数额
④:取钱则是减操作,存钱则是加法操作,查看余额则是直接显示金额
⑤:输入不同的值,可以使用switch来执行不同的操作
注意点:金额放在循环外面,不然每次都会重新赋值
<script>
let balace = 2000
while (true) {
let caozuo = +prompt(`
1.存钱
2.取钱
3.查询余额
4.退出
`)
if (caozuo === 4) {
break
}
switch (caozuo) {
case 1:
let jia = +prompt('请输入要存入的金额:')
balace = balace + jia
alert(`您要存入的金额为${jia}`)
break
case 2:
let jian = +prompt('请输入要取的金额:')
balace = balace - jian
alert(`您要存入的金额为${jian}`)
break
case 3:
alert(`您的余额为${balace}元`)
break
}
}
</script>