表达式和语句
-
表达式
-
表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
-
x = 7 3 + 4 num++
-
-
语句
- js整句或命令,js语句是以分号结束(可以省略)
-
区别
- 表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
- 表达式:3+4
- 语句:alert() 弹出对话框
- 某些情况,也可以把表达式理解为语句,因为它是在计算结果,也是做事
分支语句
程序三大流程控制语句
- 以前写的代码,写几句就从上往下执行几句,这种就叫顺序结构
- 有的时候要根据条件选择执行代码,这种就叫分支结构
- 某段代码被重复执行,就叫循环结构
分支语句
分支语句可以让我们有选择性的执行想要的代码
- 分支语句包含
- if分支语句
- 三元分支语句
- switch 语句
if语句
-
if语句有三种使用:单分支、双方分支、多分支
-
单分支使用语法:
-
if (条件) { 满足条件要执行的代码 }
-
括号内的条件为true时,进入大括号里执行代码
-
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
-
-
双分支if语句语法:
-
if (条件) { 满足条件要执行的代码 } else { 不满足条件执行的代码 }
-
案例:让用户输入年份,判断这一年是闰年还是平年并输出
-
let year = prompt('请输入年份') if (year % 4 === 0 && year % 100 !== 0 || year % 400 ===0 ) { alert(`${year}年是闰年`) } else { alert(`${year}年是平年`) }
-
-
多分支if语法:
-
if (条件1) { 代码1 } else if (条件2) { 代码2 } else if (条件3) { 代码3 } else { 代码n }
-
先判断条件1,若满足条件1就执行代码1,其他不执行
-
若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
-
若依然不满足继续往下判断,以此类推
-
若以上条件都不满足,执行else里的代码n
-
可以写n个条件
-
三元运算符
-
其实是比if双分支更简单的写法,有时候也叫做三元表达式
-
符号:
?
与:
配合使用 -
语法:
-
条件 ? 满足条件执行的代码 :不满足条件执行的代码
-
一般用来取值
console.log(true ? 1 : 2)
console.log(false ? 1 : 2)
//结果为true 执行1 结果为false 执行2
<script>
3 > 5 ? alert('第一个') : alert('第二个')
</script>
案例:判断两个数的最大值
let num1 = 20
let num2 = 30
//num1 > num2 ? console.log(num1) : console.log(num2)
let re = num1 > num2 ? num1 : num2
console.log(re)
案例:数字补0
需求:用户输入1个数,如果数字小于10,则前面进行补0,比如09 03 等
分析:
- 为后期页面显示时间做铺垫
- 利用三元运算符 补0 计算
<script>
// 用户输入数字
let num = prompt('请您输入一个数字')
// 判断条件 小于10 则数字前面+0 否则 不补
let t = num >= 10 ? num : 0 + num
document.write(t)
</script>
switch 语句
利用switch执行满足条件的语句
switch (数据) {
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码n
break
}
- 找到跟小括号里数据全等的case值,并执行里面对应的代码
- 若没有全等 === 的则执行default 里的代码
- 例:数据若跟值2全等,则执行代码2
1. switch case 语句一般用于等值判断,不适合于区间判断
2. switch case 一般需要配合break关键字使用 没有break会造成case穿透
switch (2) {
case 1:
alert(1)
break
case 2:
alert(2)
break
default:
alert('没有数据')
break
}
案例:简单计算器 ±*/
<script>
// 用户输入2个数字,然后输入+-*/任何一个,可以计算结果
// 1.用户输入数字
let num1 = +prompt('请您输入第一个数:')
let num2 = +prompt('请您输入第二个数:')
let sp = prompt('请您输入 + - * / 运算')
// 根据不同的运算符计算不同的结果
switch (sp) {
case '+':
alert(`您选择的是加法,结果是:${num1 + num2}`)
break
case '-':
alert(`您选择的是减法,结果是:${num1 - num2}`)
break
case '*':
alert(`您选择的是乘法,结果是:${num1 * num2}`)
break
case '/' :
alert(`您选择的是除法,结果是:${num1 / num2}`)
break
default:
alert('你输了啥?')
}
</script>
循环语句
while循环(实现一段代码重复执行)
-
while循环语法:
-
while (循环条件) { 要重复执行的代码(循环体) }
-
跟if语句很像,都要满足小括号里的条件为true才会进入执行代码
-
while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
-
-
循环需要具备三要素:
- 变量起始值
- 终止条件(没有终止条件,循环会一直执行,造成死循环)
- 变量变化量(用自增或自减)
<script>
let i = 1
while (i <= 5) {
document.write(`月薪过万 <br>`)
i++
}
</script>
循环退出
能说出continue和break的区别
-
循环结束
-
continue:结束本次循环,继续下次循环
-
<script> let i = 1 while (i <= 6) { if ( i === 3 ) { i++ continue } document.write(`我要吃第${i}个包子 <br>`) i++ } </script>
-
break:跳出所在的循环 结束循环
-
<script> let i = 1 while (i <= 6) { if ( i === 3 ) { i++ break } document.write(`我要吃第${i}个包子 <br>`) i++ } </script>
-
<script> let i = 1 while (i <= 6) { if ( i === 3 ) { i++ break } document.write(`我要吃第${i}个包子 <br>`) i++ } </script>
-