一.for循环
语法:
- 作用:重复执行代码
- 好处:把声明起始值、循环条件、变化值写到一起,让人一目了然,它是最常使用的循环形
示例:
1.2 for循环的最大价值: 循环数组 (也称遍历数组)
(循环数组要学会运用断点调式 观察走向)
例:将数组 [‘马超’,‘赵云’, ‘张飞’, ‘关羽‘,’黄忠’] 依次打印出来
1.必须从0开始,因为索引号从0开始,arr.length=数组长度(也就是数组元素个数)
2.遍历数据:从第一个循环到最后一个
let arr = ['马超', '赵云', '张飞', '关羽', '黄忠']
for (let i = 0; i < arr.length; i++) {
document.write(`${arr[i]}<br>`)
}
1.2.1 退出循环
- continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue
// continue 后面的代码不执行,直接跳到i++ (结束本次循环)
for (let i = 1; i <= 5; i++) {
if (i === 3) {
continue
}
document.write(`我在吃${i}个包子<br>`)
}
运行结果:
我在吃1个包子
我在吃2个包子
我在吃4个包子
我在吃5个包子
- break 退出整个for循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用
了解:
1. while(true) 来构造“无限”循环,需要使用break退出循环。
2. for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。
1.3 循环嵌套
语法:
嵌套循环注意点:
1.内部for循环直到跳出循环 外部for才会执行第二次
2. 内部for循环每一次都是独立的,第二次又重j的初始值开始
2.注重断点调试观察
案例1:
// 需求:实现1天学5个单词,3天学几个
for (let i = 1; i <= 3; i++) {
document.write(`这是第${i}天<br>`)
for (let j = 1; j <= 5; j++) {
document.write(`第${i}天,第${j}个单词<br>`)
}
document.write('<hr>')
}
运行结果:
案例2:经典题型:打印99乘法表
// 外层for循环 9行
for (let i = 1; i <= 9; i++) {
// 内层for循环 列
for (let j = 1; j <= i; j++) {
document.write(`<span>${j}*${i} = ${i * j}</span>`)
}
document.write('<br>')
}
二.数组
数组:(Array)是一种可以按顺序保存数据的数据类
为什么要数组?
- 思考:如果我想保存一个班里所有同学的姓名怎么办?
- 场景:如果有许多数据,可以用数组把他们装起来,起一个变量名(也就是数组名),管理起来十分方便
1.声明语法
注意:
- 数组是按顺序保存,所以每个数据都有自己的编号
- 计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推
- 在数组中,数据的编号也叫索引或下标
- 数组可以存储任意类型的数据
2.取值
通过下标取数据
3.遍历数组(重点)
例:
let arr = ['马超', '关羽', '赵云', '张飞', '黄忠']
for(i = 0; i < arr.length; i++){
console.log(arr[i])
}
4.操作数组 (增删改查)
4.1 增
1.数组名.push(新增的内容) 将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
let arr = ['关羽', '张飞', '赵云', '马超', '黄忠']
arr.push('周瑜')
arr.push('大乔', '二乔')
document.write(arr)
document.write('<hr>')
2.数组名.unshift(新的内容) 将一个或多个元素添加到数组的开头,并返回该数组的新长度
let arr2 = ['关羽', '张飞', '赵云', '马超', '黄忠']
arr2.unshift('三国名将', '诸葛亮')
document.write(arr2)
4.2 删
1.数组名.pop() 删除数组中最后一个元素
let arr = ['马超', '赵云', '张飞', '关羽', '黄忠',]
arr.pop()
document.write(arr)
2.数组名.shift() 删除数组中第一个元素
let arr = ['马超', '赵云', '张飞', '关羽', '黄忠',]
arr.pop()
document.write(arr)
3.数组名.splice(选中那个数组的下标,删除的个数 )
arr.splice(数组下标,删除个数) 如果不写删除的个数,会把数组下标之后的全删除