流程控制
js中代码默认从上到下执行,我们可以通过流程控制,来控制代码执行的顺序,js中流程控制可以分为以下结构
顺序结构:默认的,默认代码从上到下执行
分支结构:选择性的去执行,if,switch
循环结构:for while do-while for-in
关键字:continue ,break
分支结构
1.1if
1.1.1if单分支
if(条件){条件成立执行的代码段}
条件:可以是表达式也可以是单个数据(单个数据自动检测真假,只有0,NaN,null,undefined,''是假的)
1.1.2if双分支
if(条件){条件成立执行的代码段}else{条件不成立执行的代码段}
else是可以省略(可以加也可以不加)
1.1.3if多分支
if(条件){条件成立执行的代码段}
else if(条件){条件成立执行的代码段}
······
else{条件不成立执行的代码段}
else if中else可省略
1.2switch多分支
语法:switch(值){
case 比较值1:成立执行的代码段;break;
case 比较值2:成立执行的代码段;break;
case 比较值3:成立执行的代码段;break;
...
default:以上情况都不成立执行的点断;(相等于else,可以省略)
}
用值 和 case后边对应值进行比较(===),是绝对比较,数据类型不同一定不相等,成立就执行当前case后对应的代码段
case穿透:当前case对应条件成立,不仅将当前case后边对应代码执行,还会将下边case(default)对应的带代码执行,防止case穿透,在当前case对应代码末尾加break;
1.3if和switch的区别
if可以解决js中所有的判断,if条件可以表达式,也可以是具体的值。switch是值的比较(绝对比较)
循环结构
循环是指让特定的代码段执行指定的次数
2.1for循环
语法:
for(表达式1,表达式2,表达式3){
循环体
}
表达式1:设置初始值 表达式2: 循环条件 (循环的终值) 表达式3: 更新循环变量
2.2while和do···while
while
设置初始值
while(条件){
循环体->特定的代码段;
更新循环变量
}
do···while
设置初始值
do{
循环体->特定的代码段;
更新循环变量
}while(条件)
while和do···while的区别
while是先判断再执行,直至跳出循环;do···while是先执行再判断,所以无论是否满足条件都至少执行一次。
2.3for···in循环
for···in循环主要用于复杂数据类型object对象,一般用来循环遍历对象
语法:
for(var 变量名 in 对象){循环体}
例:
var obj = {
name:"job",
age:18,
sex:"女"
}
for(var key in obj){
console.log(key);//name,age,sex
console.log(obj[key]);//job,18,女
}
2.4for循环嵌套
arr = [
['唐僧', '佛', '金蝉子'],
['孙悟空', '猴子', '齐天大圣'],
['猪八戒', '猪', '天蓬元帅'],
['沙悟净', '仙', '卷帘大将'],
['白龙马', '龙', '龙王三太子']
];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
// 赋值
var curArr = arr[i];
for (var j = 0; j < curArr.length; j++) {
console.log(curArr[j]);
}
}
2.5关键字continue及break
continue和break在循环中都表示终止循环。continue是结束当前这一次循环,进入到下一次循环,break是结束整个循环