语句
表达式和语句
-
表达式:可以被求值的代码,并将其计算出一个结果。
-
语句:一段可以执行的代码,是一个行为,例如,分支语句和循环语句。
分支语句
- 作用:根据条件判定真假,来选择性的执行想要的代码。
- 包含:
- if分支语句
(重点)
- 三元运算符
- switch 语句
- if分支语句
if 语句(重点)
- if 单分支语句
- 使用语法: if (条件) { 满足条件要执行的代码 }
- 小括号里的条件结果是布尔值,为true时,执行大括号里的代码;为false,则不执行。
- 若条件结果不是布尔类型时,会发生类型转换为布尔值。
// if语句
if (0) {
console.log('我是1')
}
console.log('我是0')
</script>
- if 双分支语句
-
使用语法:if (条件) { 满足条件要执行的代码 }
else { 不满足条件要执行的代码 }
// if 双分支语句 if (1) { console.log('我是1') } else { console.log('我是0') }
- if 多分支语句
- 使用场景: 适合于有多个条件的时候
//多分支语句
//案例
let score1 = prompt('请输入你的成绩:')
if (score1 >= 90) {
alert('NB')
} else if (score1 >= 70) {
alert('nice')
} else if (score1 >= 60) {
alert('ok')
} else {
alert('nono')
}
注意:else if 可以有任意多个, else 不是必须的
三元运算符
- 使用场景: 一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分支 更简单。
- 语法: 条件 ? 表达式1 : 表达式2
- 执行过程:如果条件为true,则执行表达式1;如果为false,则执行表达式2.
//三元运算符
//1. 输入数据: 两个数字
let num1 = prompt('请输入第一个数字')
let num2 = prompt('请输入第二个数字')
// 判断: 比较大小,输出最大值
let result = num1 > num2 ? num1 : num2
alert(`最大值为${result}`)
数字补0案例
// 数字补0 案例
// 1. 输入数据: num
let num = prompt('请输入一个数')
// 2. 判断: num 小于 10 ,则在前面补0
let result1 = num < 10 ? '0' + num : num
alert(result1)
switch 语句
-
使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同。
-
语法和使用
//语法 switch (表达式) { case 值1: 代码1 break case 值2: 代码2 break //可以有多个case //若没有全等 === 的则执行default里的代码 default: 代码n } //使用 switch ('niuniu') { case 'yaya': alert('yaya') break case 'niuniu': alert('niuniu') break case 'baobao': alert('baobao') break default: alert('no~') }
注意:
- switch case语句一般用于等值判断, if 适合于区间判断。
- switch case一般需要配合break关键字使用 没有break会造成case穿透。
- if 多分支语句开发要比switch更重要,使用也更多
循环语句
- 使用场景:重复执行 指定的一段代码。
- 包含:
- while 循环
- for 循环
while 循环
- 作用:在满足条件期间,重复执行某些代码。
- 三要素: 初始值,循环条件,变量计数(常用自增或自减)
//需求: 连续写出“我很开心”三遍
// 三要素 1. 初始值
let i = 1
// 2. 条件
while (i <= 3) {
document.write('我很开心~<br>')
// 3. 变量计数
i ++
}
for 循环(重点)
-
作用:在满足条件期间,重复执行某些代码。
-
语法和使用
//语法 for (初始值; 循环条件; 变量计数) { 满足条件执行的循环体 } //使用 //需求: 连续打印五个* for (let i=0; i<5; i++) { document.write('*<br>') } // 练习1. 页面输出年龄(1-50) for (let i = 1; i <= 50; i++) { document.write(`我今年${i}岁了<br>`) } // 练习2. 页面输出1-50的偶数 for (let i = 1; i <= 50; i++) { if (i % 2 === 0) { document.write(i + '<br>') } }
for 循环练习
//1. 求1-100的累加和
let sum = 0
for (let i = 1; i <= 100; i++) {
sum += i
}
document.write(sum + '')
// 2. 求1-100之间所有的偶数和
let sum1 = 0
for (let i = 1; i <= 100; i++){
if (i % 2 === 0) {
sum1 += i
}
}
document.write(sum1)
终止循环
- break: 终止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)。
- continue: 终止本次循环,一般用于排除或者跳过某一个选项的时候。
//break
for (let i = 1; i <= 6; i++) {
if (i === 3) {
break
}
console.log(i)
}
console.log('-------')
//continue
for (let i = 1; i <= 6; i++) {
if (i === 3) {
continue
}
console.log(i)
}
无限循环
-
while(true)
-
for( ; ; )
-
以上两个无限循环,需要使用break退出循环
-
使用场景:当我们需要执行一段不确定次数的代码时
循环嵌套
-
循环嵌套:一般出现在for里面。
-
基本使用语法:
for (初始化; 循环条件; 变量计数;) { for (初始化; 循环条件; 变量计数;) { //重复执行的代码 } }
-
特点:外部循环每循环一次,内部循环执行所有次。
//嵌套循环
// 需求: 每天记五个单词,连续记三天
for (let i = 1; i <= 3; i++) {
console.log(`第${i}天`)
for (let j = 1; j <= 5; j++) {
console.log(`记住第${j}个单词`)
}
}