前言
默认情况下,所有的代码都是从上到下,从左到右顺序执行的。
在编写程序时,果然我们要想让程序 像自然语言一样,有选择的执行我们的语句,就需要使用到流程控制
选择语句
if
if语句包括有 if、if…else 、 if …else if …else
- if : if语句中条件表达式为true 执行代码
if(true){//多行代码 用花括号包围
}
- if…else
如果if条件表达式为true,执行if 后面花括号的代码,否则执行 else 中的代码
if(true){//多行代码 用花括号包围
}else{
}
- if …else if …else
如果if条件表达式为true,执行if 后面花括号的代码,否则执行 else 中的代码; 比起 if…else 根据复杂一些
if(true){//多行代码 用花括号包围
}else if(true){//多行代码 用花括号包围
}else{
}
条件表达式的值需要是布尔类型,如果不是布尔类型,会触发隐式转换
switch
switch语句 中条件表达式的值可以是任何类型;然后根据这个值和case 后面紧跟的值进行对比,满足的就会执行;当所有case 值都不满足时,执行default 后的代价
switch(条件表达式){case 值1:break;case 值2:break;default:break;
}
break 表示跳出当前语句;如果是 放在 循环中,表示当前这一层循环
循环语句
循环,顾名思义,就是需要反复执行的程序;比如数字累加
for
for(前置语句;条件表达式;后置语句)let sum=0;
for(let i=1;i<=100;i++){sum +=i;
}
除了上面这种,你还可以使用for …of /for …in
let sum=['1','2','3'];
for(let item of sum ){console.log(item)
}for(let item in sum ){console.log(item)
}
- for…of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句
- for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法
do…while
do 后面跟执行的代码 while (表达式); 表达式值为true ,执行循环中代码
do{}while(表达式)
while
while(表达式)
while(表达式){}
do …while 与while 都是表示循环,区别在于 do…while 表示至少执行一次; while 可能一次都不执行
跳出语句
break
break 表示跳出当前这层循环
continue
continue 表示跳出本次循环,但不会终结这个循环体
return
return 表示直接返回,是会直接退出当前函数的,不会在执行return 后面的语句