Javascript(三):控制流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tuyi5078/article/details/79956021

       根据上一节 Javascript(二):变量 的学习,个人感觉js中变量的定义还是挺简单的,只用到了关键词var就可以解决。本节继续学习js的语法中的控制流如何使用,也就是条件的判断,针对某一种情况执行特定的代码。

第一种:if/else条件语句判断

基本语法:if(条件){  };

                else{  };

当条件为真时,执行if后面括号中的内容;条件为假,执行else后面括号中的内容。

例如,在js文件中输入如下代码:

var insa=true;
if(insa){
    console.log(typeof "asdfsda");
}
else {
    console.log('asdfsda');
}

执行后,会返回string,也就是执行了if后面大括号中的内容,返回了字符串asdfsda的类型。

在这里插一个小插曲:我在执行如上代码时,浏览器中开发者工具的控制台返回SCRIPT7002: XMLHttpRequest: 网络错误 0x80700013。


如果你也遇到同样的问题,请看我的另一篇博客:XMLHttpRequest:网络错误 0x80700013解决方法

继续回到学习主题。如果代码向上述一样,if/else后面的大括号中,如果只有一条语句,那么大括号可以省略不写。

除了上面例子中的条件类型为true/false时,会执行条件判断,还有其他的值的类型也会被执行。在js中,有一些值会被默认为false:①数字零(0);②空字符串(‘ ’);③不是一个数(NaN);④空(null);⑤未定义(undefined)。

第二种:switch/case条件语句判断 

if/else语句是用于条件二分时的判断,当条件变多时,不断的在if条件中嵌套if/else语句会显得比较臃肿:

if(周一){吃炒面;}
else{
      if(周二){吃炒饭;}
      else{
            if(周三){吃炒米粉;}
            else{..............}
           } 
}//这只是为了理解的一段伪代码,不可以执行成功

改进办法:可以用else if来代替else里面不断的去嵌套if/else语句:

if(周一){吃炒面;}
else if(周二){吃炒饭;}
else if(周三){吃炒米粉;}
....

其实,当条件判断结果的分支很多时,使用switch/case语句进行判断会变得更加紧凑:

var day = 2
switch (day){
    case 1:console.log('吃炒面');
    case 2:console.log('吃炒饭');
    case 3:console.log('吃炒米粉');
}

注意,按上述代码的写法,当在switch中找到匹配项后,还会一直往下执行代码,输出匹配项之后的内容,按上述代码执行,返回结果如下:


这就是因为,在这里,day匹配的case是2,找到匹配项后,执行case2后面的内容,同时因为在case2后面没有跳出判断的条件,程序会继续向下执行。在这里,就需要使用break,判断条件执行成功时,就跳出条件语句

var day = 2
switch (day){
    case 1:console.log('吃炒面');break;
    case 2:console.log('吃炒饭');break;
    case 3:console.log('吃炒米粉');break;
}

执行结果如下:


在switch中还有一个关键词default,当在switch条件判断中找不到匹配项,就默认执行default: 后面的内容




猜你喜欢

转载自blog.csdn.net/tuyi5078/article/details/79956021