[路飞]js基础篇流程控制语句

112 阅读2分钟

js控制语句有,switch/for

1.switch用法:

switch(表达式 || 变量){
 case value1:
     console.log('满足1的条件');
 case value2:
     console.log('满足2的条件');
 default:
     console.log('以上条件都不满足');
}

表达式 || 变量 和 value 做的是全等(===)的比较

1.swiitch表达式是全等;
2.每个case后面如果不带break就会一直向下执行直到遇到break或者结束这种行为叫穿透,写了break就只执行该case语句;
3.switch穿透的优点:1.同时满足的值可以写在一起,在最后一个case后面写break,这样的代码看起来更简洁,性能更好,代码如下:

switch(value){
   case '1':
   case '2':
   case '3':
   case '4':
   case '5':
       console.log('今天是工作日');
       break;
   case '6':
   case '7': 
       console.log('今天是休息日'); 
}

4.所有的switch语句if else都可以实现,但是不建议用这种方式,优先推荐switch,switch代码更简洁,性能更高;
5.switch用于评分写法:评分系统是用于一个范围,解析:因为switch最终是通过全等表达式比较来返回的布尔值,所以只要case表达式返回的也是表达式就成立了,代码如下:

switch(true){
    case score >=90 && score <= 100:
        console.log('优秀');
        break;
    case score >= 60 && score < 90:
        console.log('良好');
        break;
    case score < 60 && score >= 0: 
        console.log('不及格');
        break;
    default:
        console.log('输入的内容有问题');
        break;
}

2.for用法

1.数组可以根据下标获取响应值,可以根据for循环依次输出每一个数组value. 2.json格式的对象,是根据key value来获取相应的值,没有长度.不能用于普通的for来输出值,需要用for in来获取值,代码如下:

var obj = {
    x:20,
    y:30,
    z:40
}
/*
    var key in obj - > 声明一个key变量用于代表obj里面的key
*/
for(var v in obj ){
    console.log(obj[v]);
}

3.for循环:更适合已知执行次数的情况,例如:我们要获取数组中的每一位的值

3.while用法

1.如果我们想获取一个数组里第一个大于当前的值,如果用for循环将会把整个数组都遍历一遍,将所有大于当前的值都遍历出来,如果用while就满足需求,while是只要满足括号的天剑才会执行,不满足就会退,代码如下:

/*我只希望获取到第一个比26大的数字!*/
var arr = [10,420,50,25,28,46];
var num = 26;
for(var i=0;i<arr.length;i++){
    if(arr[i]>26){
        alert(arr[i]);
    }
}
var i = 0;
while(arr[i]<num){
    i++;
    if(arr[i]>num){
        console.log(arr[i]);
    }
}

2.while更适用于位子长度的数组

4.do while用法

1.do while和while用法类似,do while最少执行一次,先执行在判断,while是先判断在执行

5.break 和 continue 区别

break 是跳出当前循环,continue 可以终止当前这次循环,但是不会跳出循环,他会跳过当前这次的循环执行下一次的循环