语句与循环结构

157 阅读2分钟

1、if语句

 if(条件){
   条件为true进入
 }else{
   条件为false进入
 }

注:

条件表达式运算后隐式转换为布尔值,若值为true则进入该语句。

在条件语句中大量用!配合完成不是这种非真进入。

多分支:

if(){

}else if(){

}else{

}

上面仅只执行其中的一个条件。

if(){

}
if(){

}
if(){

}

这种每个条件都会进行自己判断。

2、switch语句

switch(表达式){
      case1:
        break;
      case2:
        break;
      case3:
        break;
      defeaut:
}

特点:

当表达式绝对等于(===)值时执行内容,

当不写break时具有可穿越性,

它的条件执行看起来非常清晰。

一般用于状态机。

3、while循环

while(条件){
   循环体
}

特点:

它的效率执行大于for语句

功能较为复杂具有do……while。

break在while中的应用
   var i=0;
    while(true){
        if(i>50) break;
        console.log(i);
        i++;
    } 
 abc:while(true){
      while(true){
        console.log(i);
        if(i>50) break abc ;
        i++;
    } 
   } 

当遇到break时会结束此循环语句。

第二种为存在锚点的情况,它会直接跳出上层带有锚点值的循环。

continue在while中的应用
var i=0;
        var sum=0;
        while(i++<10){
            if(i===5) continue;
            sum+=i; 
        }

当遇到continue时直接跳过循环体下面要执行的语句,继续进入下次循环。

do……while循环

do{ 循环体 } ( 条件 )

特点:

先执行,在判断条件是否继续循环。

do……while一般使用++i的条件更为简便

不管条件是否满足,至少执行一次语句。

for循环

//求1~100的和
var sum = 0;
for(var i = 0; i < 100; i++) sum+=i;
console.log(sum)

for循环中第一个;前是循环变量初始值

第二个;前是条件

最后是变量向条件靠拢的方式。

特点与技巧:

循环变量初始值定义只执行一次,并不一定用var,可以定义多个变量。

循环条件是一个表达式,隐式转换为布尔值,为true时进入循环中。

最后的部分其实是每次循环完后执行的语句。

关于for的死循环
for( ; ; ){ }
for( ;true; ){}

可以使用死循环进行深度遍历

var obj = {
       value:1,
       link:{
             value:2,
             link:{
                   value:3,
                   link: {
                        value:4,
                        link: {}
                   }
             }
       }
}


for(;obj.link;obj=obj.link);
console.log(obj.value)

注意点:

注意当进行反向循环(从大到小)条件注意使用等号的问题。

在双重循环时,不要在内层中判断外层或改变外层变量。

如果使用break时,不写出跳出lable,它只会跳出当前层循环。

循环是同步的

不能次数超过十亿次,不能嵌套太多循环,一般不会超过两层。