04process.md

goer ... 2022-01-05 Javascript
  • Javascript
大约 2 分钟

流程控制

[toc]

# 流程控制

进行等复杂的逻辑

# 1. 判断

结构:
if(判断条件){
    条件为true的结果;
}else{
    条件为flase的结果;
}
// 还可以有:
else if(条件){
 	满足条件执行的语句   
}
1
2
3
4
5
6
7
8
9
10
var arr = [1,2,3]

if(arr.lenght == 3){
    console.log("数组长度为3")
}else{
    console.log('pass')
}

if(num1 = 0){   // 赋值,num1 = 0    (0) > flase
    console.log(0);
}else if(num1 = 2){	
    console.log(2)	// 赋值,num1 = 2   (2) > true
}else{
    console.log('no')
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
结构:
switch(判断变量){
	case 10:
    console.log(a+'=10');
    break;
	case 9:
    console.log(a+'=9');
    break;
    case 8:
    console.log(a+'=8');
    break;
    default:// 都不满足,执行   默认
    console.log(不存在)
       
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3. 循环

//结构
// 循环最重要三个条件:(起点,终点,步长)
while(条件){
    条件true执行括号内代码。
}
1
2
3
4
5
var num = 20;
while(num < 20){
    docmuent.wirte(num+"<br>");
    num++}
1
2
3
4
5
var num = 10;
do{
    console.log(num);
}while(num>20);
// 不满足条件也执行了一次
1
2
3
4
5

区别:

while 先判断条件再执行代码,最少0次

do .. while 先执行代码,再判读条件 最少1次

for(起点值,终点值,步进值){
    
    满足条件执行语句	   
}
1
2
3
4
for(var a=0; a <10; a+=2){
    console.log(a) // 0 2  4 6 8
}
1
2
3
// 用while 和for循环输出任意行和任意列的表格
document.write('<table border="1" width=800 height=800 cellspacing="0">')
        



document.write('</table>')
1
2
3
4
5
6
7

面试题:

// 后定义的变量是正常循环输出
// i<8,j<10 终点值这里,后面会被覆盖,所有看后面值输出多少次,前面的值也要输出多少次       
// 所有i<8 这个没有用可以删除
for(var i=0,j=1; i<8,j<10; i+=2,j++){
    document.write(i); 	   // 也是输出9次,每次加二
    //document.write(j);  // 0到9
}
1
2
3
4
5
6
7

continue: 跳过本次循环

break: 终止所有循环

//很好理解的
for(var a=0; a<20; a+=4){
    if(i== 13 || i==0){
        continue; // 跳过本次循环
    }
    if(i==16){
        break; //终止所有循环
    }
}
1
2
3
4
5
6
7
8
9

# 4. 循环数组

for ... in:能拿到数组键值对

var arr = ['one','two','three','four','five','six'];


for (k in arr){
    console.log(k); //k自定义变量,是数组的 键值  0 1 2 3 4 5 
    console.log(arr[k]) //数组的值   		//'one','two','three','four','five','six'
}
1
2
3
4
5
6
7

for ... of:只能拿到数组值

for (v of arr){
    console.log(v)  'one','two','three','four','five','six'
}
1
2
3

forEach:能拿到数组自己和键值对

arr.forEach(function(v,k,ar){
    // 匿名函数,直接执行   三个参数
    // v 数组值
    // k 数组健
    // ar 数组
    console.log(v);
    console.log(k);
    console.log(ar);//这里如果arr,调用每次都要去找arr
    // ar 这样我们只有找一次arr 
})
1
2
3
4
5
6
7
8
9
10