初入JS(三)

逻辑运算符扩展

&& : 如果左边返回真,那么就返回右边的值,如果左边返回假,就返回左边的值 (短路运算)

1
2
3
console.log( 0 && 2 );
console.log( 1<2 && 5>4 ); 1<2 -> true 公式整体得到 5>4 -> true
console.log( 1>2 && 5>4 ); 1>2 -> false 公式整体得到 1>2 -> false

|| : 如果左边返回真,那么就返回左边的值,如果左边返回假,就返回右边的值 (短路运算)

1
2
3
//console.log( 0 || 2 );

//console.log( 1<2 || 5<4 ); 1<2 -> true 公式整体得到 1<2 -> true

& | 位运算 ,跟正常的&& || 功能类似 ,只不过是针对二进制的

JS控制流程

顺序结构

  顺序结构就是程序从上到下、从左到右一句一句的去执行,没啥好说的。

选择结构

  1.if判断

  1. 单向选择
    1
    2
    3
       if( 5 > 3 ){    // 单向选择
    console.log('if执行');
    }
  2. 双向选择
    1
    2
    3
    4
    5
    6
    if( 5 < 3 ){    //双向选择
    console.log('if执行');
    }
    else{
    console.log('else执行');
    }
  3. 多向选择
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var day = '星期日';

    if( day == '星期一' ){ //多向选择
    console.log('上课');
    }
    else if( day == '星期四'){
    console.log('上自习');
    }
    else if( day == '星期日'){
    console.log('休息');
    }
    else{

    }
    if判断中的真假值
    false、0、‘’、undefined、null、NaN 六个值在if判断中为假值,其余未声明的均为真值
    1
    2
    3
    4
    5
    6
    7
    8
    //真假值(false 0 '' undefined null NaN)
    //一个值也可以做判断,false 0 '' undefined null NaN6个值返回假,其他值都返回真
    if( [] == true ){ [] -> 0 true -> 1 0 == 1 false
    console.log('if执行');
    }
    if( [] ){ [] -> 不在6个假值内 -> true
    console.log('if执行');
    }

     2.switch判断

    语法格式:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var day = '星期日';

    switch( day ){
    case '星期日':
    console.log('执行1');
    break;
    case '星期一':
    console.log('执行2');
    break;
    default:
    console.log('执行3');
    }

注意:switch语句中的判断是严格判断,即运用 ===进行判断

1
2
3
4
switch(1){
case '1':
cccc //不执行
}

循环结构

循环结构的目的就是为了节省重复代码的操作

 while循环

四个步骤:

1
2
3
4
1. 定义变量  
2. 条件判断(条件不满足的时候,循环结束)
3. 3.执行语句
4. 4.自增或自减

代码结构:

1
2
3
4
5
6
7
8
9
var count = 0;

while( count < 5 ){

console.log( 123 );

count++;

}

不要写出死循环,要写循环结束的条件逻辑

 for循环

四个执行步骤 ( while和for可以互相转换的,等价的 )

1
2
3
4
1. 定义变量   
2. 条件判断(条件不满足的时候,循环结束)
3. 执行语句
4.自增或自减

代码结构:

1
2
3
for(var i=0;i<5;i++){
console.log(i);
}

for循环可以进行嵌套

1
2
3
4
5
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
console.log(i , j);
}
}
 关于for循环的循环跳出

循环跳出可以使用两个语句,break和continue,下面简单讲一下两者的不同。

  break语句

break语句使用后程序会跳出整个循环

1
2
3
4
5
6
for(var i=0;i<5;i++){
console.log(i);
if(i == 2){
break;
}
}

i = 2时跳出循环,故只打印 0 1 2
如果把if和console.log换一下位置

1
2
3
4
5
6
for(var i=0;i<5;i++){
if(i == 2){
break;
}
console.log(i);
}

  continue语句

continue语句使用后只会跳出当前循环

1
2
3
4
5
6
for(var i=0;i<5;i++){
if(i == 2){
continue;
}
console.log(i);
}

i = 2时跳出当前循环,循环继续,故打印 0 1 3 4

注意:嵌套循环的break默认跳出当前的循环,而不会跳出最外层循环

1
2
3
4
5
6
7
8
for(var i=0;i<5;i++){
for(var j=0;j<3;j++){
if( j == 1){
console.log(j);
break;
}
}
}

内层循环跳出,只执行外层循环
那么如果想要退出最外层循环,那应该怎么办呢

1
2
3
4
5
6
7
8
outer : for(var i=0;i<5;i++){   //跳出到指定的某一层
for(var j=0;j<3;j++){
if( j == 1){
console.log(j);
break outer;
}
}
}

 do-while循环

和while不同之处:执行循环之前必定执行一次。

1
2
3
4
5
6
var i=0;
do{
console.log(i);
i++;
}
while(i<5);



初入JS(三)
https://moewang0321.github.io/2019/08/06/2019-08-06-初入js(三)/
作者
Moe Wang
发布于
2019年8月6日
许可协议