循环结构:在满足条件的情况下 重复执行某一段代码块
for 循环
=>组成部分 4个
1、初始值
2、条件判断
3、循环体 (循环代码块|执行语句)
4、条件迭代
执行逻辑:首次创建初始值,接下来进行条件判断,当条件表达式的布尔结果为true 则执行 循环体,为false中止循环,
当循环体执行完毕后 进行条件迭代,进行下一轮循环 依次重复 步骤 2 3 4;
for in
while 循环
dowhile循环
//数组(提供了大量变量遍历集合的方法)
1.for循环
const arr = ["老虎", "狮子", "熊猫"];
for (var i = 0; i < 5; i++) {
document.write("今天天气很不错<br>");
}
//循环length 降低空间复杂度
for (var i = 0, len = arr.length; i < len; i++) {
console.log(arr[i]);
}
// 循环偶数
for (var i = 0, len = arr.length; i < len; i += 2) {
console.log(arr[i]);
}
// 倒叙循环 初始值为数组长度 条件迭代--
for (var i = arr.length; i >= 0; i--) {
console.log(arr[i]);
}
2.for in 循环
const animals = ["狗熊", "长颈鹿", "浣熊", , , , , "金丝猴"]; //稀疏数组
//in关键词 左侧为 (索引/属性名称) 右侧 循环的数据源(数组/对象)
//for in循环 会自动识别数组长度或对象属性数量 作为循环的次数; 注:会自动过滤 空属性(empty)
for (var i in animals) {
console.log(animals[i]);
}
const dog = {
dname: "小白",
dage: "三岁",
dtype: "萨摩耶",
key: "键",
"d-hooby": "吃零食",
[dsize]: "一米",
};
//表达式形式取值
// console.log(dog['d-hooby']);
for (var key in dog) {
//对象通过属性获取值方式有以下两种?
//对象.属性名
//对象[表达式] 表达式的返回值为对象的属性 如果该属性存在则查找对应的属性值,不存在返回undefined
console.log(dog[key]);
}
3.while循环
var num = 0;
while (num < 10) {
//循环体
console.log("这是while循环");
//条件迭代
num++;
}
//倒叙循环
var count = 100;
while (count--) {
console.log(count);
}
4.案例操作
var age = window.prompt("请输入你的年龄");
while (age < 0) {
alert("年龄输入有误请重新输入");
age = window.prompt("请输入你的年龄");
}