// 王者中有很多英雄,一个英雄有很多信息
let name = '后羿';
let gender = '男';
let skill = '射箭';
let ktc = '周日被我射熄火了,所以今天是周一';
- 50多个英雄怎么办?很难,变量的数据太多了
- 有没有一种简单的办法,将一个英雄的所有信息放到一个变量中?
- 有:数组 array
数组:一个存储多个数据的集合(复合数据类型,属于对象的一种)
- 定义数组:
定义数组
let 数组变量 = [按顺序存放数据,用逗号分隔,可以无限个];
// 元素都有下标:从0开始,依次+1自增,不会间断
使用数组(访问):下标访问
数组变量[下标]
// 定义数组
let hy = ['后羿', '男', '射箭', '周日被我射熄火了,所以今天是周一'];
// 0 1 2 3
// 数据在数组中:元素,数组中的元素又分为两个部分
// 可见的数据:元素值,系统会自动生成一个不可见的下标(元素下标)
console.log(hy);
// 访问第一个元素:名字 下标为0
console.log(hy[0]);
// 访问最后一个元素:口头禅 下标为3
console.log(hy[3]);
数组取值与赋值
- 取值:
数组名[下标]
// 取第一个元素:
数组名[0]
// 取最后一个元素:
数组名[数组名.length - 1]
// 最后一个元素下标(最大下标) = 长度 - 1
// 如果下标超过数组最大下标,得到的是undefined
- 赋值:
数组名[下标] = 值
如果下标有对应的值,会把原来的值覆盖
如果下标不存在,会给数组新增元素
数组长度
- 1.获取数组的长度:
数组名.length
- 2.修改数组的长度会改变数组的元素数量:
数组名.length = 值
- 3.删除数组的最后一个元素:
数组名.length--
数组另一种声明方式
数组的创建方式有两种:
- 简洁方式:[]
- 标准方式: new Array()
两种区别:
- 它们最大的区别就是创建时如果数组的元素只有一个时 含义不同
- 简洁方式:[10]; 代表数组长度为1,元素是10
-
标准方式:new Array(10); 代表数组长度为10,没有元素
循环结构
循环结构作用:代码重复执行
-
for循环结构
for循环语法:
for( ①初始化条件 ; ②循环判定 ; ④循环条件变更 ){
③循环体:要重复执行的代码
}
①:执行 1 次,第一次进入循环的时候会执行
②:执行 N + 1 次,N代表循环体执行的次数
③:执行 N 次
④:执行 N 次 N可以为0
let num = 10
for (let i = 0; i < num; i++) {
document.write(i + '我爱你<br>');
}
// let i = 0 :初始化条件:控制次数的起点
// i < num :条件有效性判定:true表示循环可以执行,false表示结束循环
// document.write()是要重复执行的代码:for(里面的变量:i) 可以在{}使用(出了不能用)
// i++ :改变条件(++i和i++没有区别)
for循环小练习点此处:for循环练习✨
循环控制
循环控制:语言的设计者考虑到代码有时候执行是没有次数限制(死循环),或者循环内部的逻辑是有可能错误,提供了一种在循环内部可以控制循环执行的方式
-
循环控制有两种:
-
continue
:继续执行,continue以后的代码不执行了,重新开始下一次循环:for循环中,就是只进入跳到 i++ -
break
:终止循环,循环直接结束
-
-
实际应用中:break比continue要多
// 需求:要求用户输入一个数字(用户如果不是数字,继续来),如果是数字:输出
for (; ;) {
let num = prompt('请输入一个数字');
// 判定
if (isNaN(num)) {
// 不是数字
continue; // 后面的代码不执行:重新开始下一个循环
}
// 输出数字
document.write(num);
break; // 终止循环
}
网友评论