1.运算符
1.1 赋值运算符
赋值运算符:对变量进行赋值的运算符
= 将等号右边的值赋予给左边,要求左边必须是一个容器
+=:num = num+1 等价于 num+=1(自加1)
*=、\=同上
1.2 一元运算符
根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
一元运算符例如+-
自增一元运算符:++ 让变量的值+1;自减一元运算符:-- 让变量的值-1
前置自增:++i;后置自增:i++;前后自增独立使用无区别,参与运算有区别:
- 前置自增:先自加再使用(++在前 先加)
- 后置自增:先使用再自加(++在后 后加)
1.3 比较运算符
比较两个数据大小,是否相等
注:
- =单等是赋值、==是判断、===是全等
- 比较的结果为boolean类型,即只会得到true或false
- 比较运算符有隐式转换 ==只判断值,===判断值和数据类型
- 字符串比较,是比较的字符对应的ASCII码
- NaN和谁都不等,包括他自己
1.4 逻辑运算符
用来解决多重条件判断
- 与:&& 全真才真,一假则假
- 或:|| 全假才假,一真则真
- 非:! 取反
1.5 运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算术运算符 | 先* / % 后 + - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
2.语句
2.1 表达式和语句
表达式和语句的区别:
- 表达式可被求值,可以写在赋值语句的右侧
- 语句不一定有值,比如alert() for 和break等语句就不能被用于赋值
2.2 分支语句
三大流程控制语句:
- 顺序结构:从上往下依次执行
- 分支结构:根据条件选择执行代码
- 循环结构:某段代码被重复执行
分支语句包含:if分支语句、三元运算符、switch语句
2.2.1 if语句
if语句三种使用:单分支、双分支、多分支
单分支if语法:
if(条件){
满足条件要执行的代码
}
注:
- 括号内的条件为true时,进入大括号里执行代码
- 小括号内的结果若不是布尔类型时,会发生隐式转换为布尔类型
- 除了0,所有数字都为真
双分支if语法:
if(条件){
满足条件要执行的代码
}else{
不满足条件要执行的代码
}
案例1:判断平年、闰年
<script>
let year = +prompt('请输入年份:')
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
alert(`${year}年是闰年`)
} else {
alert(`${year}年是平年`)
}
</script>
案例2:判断用户登录
<script>
let uname = prompt("请输入用户名")
let kwd = prompt("请输入密码")
if (uname === 'poplar' && kwd === '123456') {
alert('登录成功')
} else {
alert('用户名或密码错误')
}
</script>
多分支if语法:
if(条件1){
代码1
}else if(条件2){
代码2
}else if(条件3){
代码3
}else{
代码n
}
注:可以写N个条件
案例--根据输入不同的成绩,反馈不同的评价
条件?满足条件执行的代码:不满足条件执行的代码
<script>
let score = + prompt('请输入您的成绩')
if (score > 90) {
alert('优秀')
} else if (score > 70) {
alert('良好')
} else if (score > 60) {
alert('及格')
} else (
alert('不及格')
)
</script>
2.2.2 三元运算符
语法:
条件?满足条件执行的代码 : 不满足条件执行的代码
案例:输入两个数,弹出最大值
<script>
let num1 = +prompt('请输入第一个数')
let num2 = +prompt('请输入第二个数')
let maxNum = num1 > num2 ? num1 : num2
alert(`两个数最大的那个是${maxNum}`)
</script>
数字补0案例:让用户输入一个数,如果数字小于10,则前面进行补0;为后期页面显示时间做铺垫
<script>
let num1 = prompt('请输入一个数')
Number(num1) < 10 ? alert('0' + num1) : alert(num1)
</script>
2.2.3 switch语句
语法:
switch(数值){
case 值1:
代码1
break
case 值2:
代码2
break
case 值3:
代码3
break
default:
代码n
break
}
注:
- 找到跟小括号里数据全等(值相同且数据类型相同)的case值并执行里面对应的代码;如果没有全等则执行defalut里的代码
- switch case一般用于等值判断,不适合于区间判断
- switch case一般需要配合break关键字使用,没有break会造成case穿透
案例:简单计算器--用户输入数字和运算符,计算结果
<script>
let num1 = +prompt('请输入第一个数')
let num2 = +prompt('请输入第二个数')
let fuhao = prompt('请输入运算符')
switch (fuhao) {
case '+':
alert(`您做的是加法运算,结果为${num1 + num2}`)
break
case '-':
alert(`您做的是减法运算,结果为${num1 - num2}`)
break
case '*':
alert(`您做的是乘法运算,结果为${num1 * num2}`)
break
case '/':
alert(`您做的是除法运算,结果为${num1 / num2}`)
break
default:
alert(`请输入+-*/等运算符`)
}
</script>
2.3 循环语句
循环:重复执行一些操作
while循环:在满足条件期间,重复执行某些代码
while循环基本语法:
while(循环条件){
要重复执行的代码(循环体)
}
释义:
- 满足小括号的条件为true才会进入循环体执行代码
- while大括号里的代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后在返回小括号判断条件,指导小括号内条件不满足即跳出
while循环三要素:
- 变量起始值
- 终止条件:没有终止条件,循环会一直执行,造成死循环
- 变量变化量:自增或自减
案例--页面打印10次id
<script>
let i = 1
while (i <= 10) {
document.write('他是一棵杨树<br/>')
i++
}
</script>
案例-从1加到100
<script>
let i = 1
let sum = 0
while (i <= 100) {
sum += i
i++
}
alert(sum)
</script>
案例-从1到100的偶数和
<script>
let i = 0
let sum = 0
while (i <= 100) {
sum += i;
i += 2
}
alert(sum)
</script>
循环退出
break:退出整个循环;一般用于结果已经得到后续循环不需要的时候可以使用
continue:结束本次循环,继续下次循环;用于排除或跳过某一个选项的时候
案例:
<script>
while (true) {
let re = prompt(' do you love me? yes or no')
if (re === 'yes') {
break
}
}
</script>
3.综合案例
需求:用户可以选择存钱、取钱、查看余额和退出功能
<script>
let yue = 100
while (true) {
let num = +prompt(`
请选择您的操作:
1.存钱
2.取钱
3.查看余额
4.退出`)
switch (num) {
case 1: num1 = +prompt('请输入您要存的钱')
yue += num1
alert(`存钱成功,您的余额为${yue}`)
break
case 2: num2 = +prompt('请输入您要取的钱')
yue -= num2
alert(`取钱成功,您的余额为${yue}`)
break
case 3:
alert(`您的余额为${yue}`)
break
}
if (num === 4) {
break
}
}
</script>