3.1. 条件执行语句
根据不同的条件执行指定条件下的路径代码(符合此条件下的代码),从而达到不同的结果
1. if 语句
if语句是使用最频繁的条件执行语句
if(条件){满足条件后执行的代码}else{其他条件时执行的代码}
这里的条件可以是任意表达式,且求值的结果不一定是布尔值,ECMAScript会自动调用Boolean()函数来将条件结果改为布尔值,如果为true就执行满足条件的代码,如果为false就执行else里的代码
if语句可以多个一起使用,达到多条件判断效果
if(条件1){代码1}else if(条件2){代码2}else if(条件3){代码3}else{代码4}
每个if通过else来连接,以达到对同一个值的判断 ,通过由上到下的顺序来依次和条件进行匹配,最终执行匹配条件下的代码
2. switch 语句
switch用于不同条件下执行不同代码,在条件较多时比if语句有优势,设定特定值来进行条件判断时推荐使用switch
switch( 表达式 ){case value1:// 表达式 等于 value1 时要执行的代码break;case value2:// 表达式 等于 value2 时要执行的代码break;default:// 表达式 不等于任何一个 value 时要执行的代码}
- 关键字 switch 后面括号内可以是表达式或值, 通常是一个变量
 switch可用于所有变量,不局限于数值- 关键字 case , 后跟一个选项的表达式或值,后面跟一个冒号
 - switch 表达式的值会与结构中的 case 的值做比较
 - 如果存在匹配全等(===) ,则与该 case 关联的代码块会被执行,并在遇到 break 时停止,整个 switch 语句代码执行结束
 - 如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码
 
let num = 25;switch (true) {case num < 0:console.log("Less than 0.");break;case num >= 0 && num <= 10:console.log("Between 0 and 10.");break;case num > 10 && num <= 20:console.log("Between 10 and 20.");break;default:console.log("More than 20.");}
<判断符输出的结果都为布尔值,所以需要switch给与的值也为布尔值,以此来和变量进行判断.switch中case只支持判断是否全等,所以需要确认判断值和条件值是否匹配.
3.2 循环执行语句
- 在循环语句中满足循环条件即可循环,当条件不满足时退出循环,
 - 当条件转换成布尔值只能是true时执行死循环
常量转换成布尔值只为while('aaaa')while(1)while(true)
true时,死循环 
1. for 循环
for(初始化变量;条件表达式;操作表达式){//循环代码}例子:for(let i=1;i<5;i++){console.log(i);}
无法通过while循环实现的逻辑,同样不能通过for循环实现,for循环只是将循环相关的代码封装在一起而已.
在for循环里面,,初始化、条件表达式、变量自加表达式都不是必须填写的 当都没有填写时,它将变为无穷循环
for( ; ;){ //虽然不需要填写,但是 ; 必须写//无穷循环}
当只填写条件表达式时,和while循环样式就相同了
let sum = 5;let i = 1;for( ; i < sum ; ){console.log(i);i++;}
2. 循环嵌套
for循环里可以再嵌套多个循环,不一定全是循环,也可以是判断语句,多个循环嵌套输出可以表达出更复杂的用法
例子:打印星星
var star = "";for (let i = 1; i < 5; i++) {for (let j = 1; j < i; j++) {star += "⭐";console.log(star);}}
3. while 循环
while循环先检测循环条件,再执行循环代码,当不满足循环条件时退出循环
let i=1;while(i<5){console.log(i);i+=1;}
在while循环还未开始时检测循环条件,不满足直接不进入循环,转而执行后面的代码
4. do while 循环
这是一种后测试循环语句,即此循环先运行一遍,再判断循环条件,该循环体内部代码至少执行一次
let i = 0;do {i += 2;console.log(i);} while (i < 10);
当变量不满足循环条件,但进入循环一次又满足后:
let i = 10;do {i -= 2;console.log(i);} while (i < 10 && i >0);
5. break 和 continue 语句
break 和 continue语句为执行循环代码提供了更严格的控制手段。其中,
break 语句用于立即退出循环,强制执行循环后的下一条语句。
let num = 0;for (let i = 1; i < 10; i++) {if (i % 5 == 0) {break;}num++;}console.log(num); // 4
continue 语句也用于立即退出循环,但会再次从循环顶部 开始执行。
let num = 0; for (let i = 1; i < 10; i++) { if (i % 5 == 0) { continue; } num++; } console.log(num); // 8
break 和 continue都可以与标签语句一起使用,返回代码中特定的位置。这通常是在嵌套循环中
通过内部循环的break跳出外部循环
let num = 0; 
outermost: 
for (let i = 0; i < 10; i++) { 
 for (let j = 0; j < 10; j++) { 
 if (i == 5 && j == 5) { 
 break outermost; 
 } 
 num++; 
 } 
} 
console.log(num); // 55
通过continue终止当前内部循环
let num = 0; 
outermost: 
for (let i = 0; i < 10; i++) { 
 for (let j = 0; j < 10; j++) {
   if (i == 5 && j == 5) { 
 continue outermost; 
 } 
 num++; 
 } 
} 
console.log(num); // 95
添加标签语句后,continue可以直接终止当前循环,开始外部下一阶段循环
6. 标签语句
- 标签语句用于给语句加标签,语法如下:
 label: statement- 下面是一个例子: 
在这个例子中,start 是一个标签,可以在后面通过 break 或 continue 语句引用。标签语句的典型应用场景是嵌套循环。start: for (let i = 0; i < count; i++) { console.log(i); } 
