JavaScript学习笔记(四)

2.1 代码块

简介:

以{}为语句进行分组,同一个{}中的语句称为一组,要么都执行,要么都不执行。

使用:
  • 只具有分组作用,无其他用途
  • 代码块中的内容在外部完全可见(ES5)
  • 代码块中的内容在外部不可见(ES6)

2.2 流程控制语句

分类:
  • 顺序结构:从上至下依次执行
  • 选择结构:对给定条件进行判断,选择性地执行
  • 循环结构:在给定条件成立下,循环执行某一段程序
If语句:
eg1:
    var a = 20;
    if(a > 10){
        console.log("a > 10");
    }

——————————————————————————————————————

eg2:
        var a = 20;
        if(a > 18){
            console.log("可以上网");
        }else{
            console.log("不可以上网");
        }

——————————————————————————————————————

eg3:
    var a = 50;
    if(a > 40){
        console.log("老年人");
    }else if(a>30){
        console.log("青年人");
    }else if(a>18){
        console.log("成年人");
    }else{
        console.log("未成年人");
    }
if语句使用注意点:
  • 若只有一条语句,if后的大括号可以省略不用写
  • if始终只可以控制其后的一条语句
  • “;”也是一条语句,表示一条空语句
  • if-else是一个整体,else 匹配 if 时 会匹配离他最近的一个if
  • 非布尔类型的值会先转换为布尔类型后,再进行判断
  • 判断变量与字面量时,一般建议把字面量写在前面
    (eg: if(0 == a){})
    这样可以避免将 等于号“==” 误用为 赋值符“=”
  • if语句可以嵌套使用
    eg:var a= 10;
    if(a>1){
    if(a<20){
    console.log(“a大于1且小于20”);
    }
    }
练习:石头、剪刀、布游戏的实现。
<script>
    var player ,computer;
    computer = parseInt(Math.random()*3);
    player = parseInt(+(window.prompt("请出拳:0->石头;1->剪刀;2->布;")));
    if(player < 0 || player >2){

        player = parseInt(+(window.prompt("请重新出拳:0->石头;1->剪刀;2->布;")));

    }else{
        if((player===0 && computer===1)
            ||(player===1 && computer===2)
            ||(player===2 && computer===0)){
            alert("电脑出拳是:"+computer+"  你赢了");
        }else if((player===0 && computer===2)
                ||(player===1 && computer===0)
                ||(player===2 && computer===1)){
            alert("出拳规则:0->石头;1->剪刀;2->布\n" + "电脑出拳是:"+computer+"\n你出拳是:"+player+"\n你输了");
        }else{
            alert("电脑出拳是:"+computer+"  平局了");
        }
    }

</script>
switch语句
简介:

一种选择结构,先对条件进行判断,再根据判断结果选择性执行

格式:
eg:
    var a = 20;
    switch(20){
        case 10:
            console.log("不是a");
            break;
        case 20:
            console.log("是a");
            break;
        default:
            console.log("找不到");
            break;

    }
流程:
  1. 先计算条件表达式的值,并逐个与case后面表达式的结果值比较
  2. 当条件表达式的值与某个表达式的值全等时,执行其后的语句,且不再与其它case进行比较
  3. 如果条件表达式的值与所有case后的表达式均不相同时,则执行default后的语句
注意点:
  • case全等问题:比较时会对数值大小与数据类型同时比较;case后可以是字面量也可以是变量
 eg:var num = 120;
            switch (120){
                case num(也可以是120,两者作用相同): 
                    console.log("120"); 
                    break;
                default:
                    console.log("default");
                    break;
            }
  • 表达式判断问题:
    判断时会先执行表达式得出具体的数值,在之后才会进行比较
  • case穿透问题:
    case之后必须有break 语句,否则程序便会向下继续执行
  • default位置问题:
    default语句可以省略
    default语句可以写在switch语句中的任意位置
if与switch选择:
  • 分支比较多且无法穷尽时最好用 if, 其它情况可以视情况而定
  • 如果数据量不是很大, 并且数据是固定的可以用Switch
  • 理论上Switch的效率比if高
  • Switch弊端:比如需要 判断用户输入的数是否大于100 时

2.3 循环

循环的组成要素:

循环条件>>>>给定条件
循环体>>>>反复执行的代码

循环的本质:
  • 一次又一次的执行相同的代码块,直到不再满足循环条件
JS中的循环分类:
  • while循环、do-while循环、for循环

2.4 while循环

格式:
while ( 条件表达式 ) {
     语句1;
     语句2;
     ....
 }

eg:

 var num = 0;
    while (num < 10){
      console.log(num); 
      num++;
    }
执行流程:
  1. 判断条件表达式是否成立
  2. 执行完循环体并再次判断条件表达式
  3. 重复执行循环体,直至循环条件不再成立
  4. 结束
注意点:
  1. 死循环
  2. 任何值都有真假性(对于非Boolean类型的值, 会先转换为Boolean类型再判断)
  3. while 后如果只有一条语句,它可以省略大括号,但是一般不建议省略
  4. 分号(;)也是一条语句, 代表空语句
  5. 最简单的死循环(while(1);)

2.5 break关键字

作用:

跳出Switch语句 & 跳出循环语句

注意点:
  • 只能用于switch语句与循环语句
  • 在多层循环中,一个break语句只向外跳一层
  • break后面的语句永远不会被执行

2.6 continue关键字

作用:
  • 跳过当前循环体中剩余的语句而继续下一次
注意点:
  • 只能用于switch语句与循环语句
  • continue后面的语句永远不会被执行

2.7 do-while语句

格式:
do {
     语句1;
     语句2;
     ....
 } while ( 条件 );
流程:
  1. 首先会执行一次循环体中的语句
  2. 接着判断while中的条件表达式是否为真,如果为真再次执行循环体中的语句
  3. 重复上述过程,直到条件不成立
  4. 结束while循环
特点:
  • 不论条件是否成立,都至少会执行一遍

2.8 for循环

概述:
  • 灵活性强,对循环次数确定与不确定的循环语句都可以使用
格式:
for(①初始化表达式;②循环条件表达式;④循环后操作表达式)
{
    ③执行语句;
}
流程:
    1. for循环开始时,会先执行初始化表达式①,而且在整个循环过程中只执行一次初始化表达式①
    1. 接着判断循环条件表达式②是否为真,如果条件为真,就会执行循环体中的语句③
    1. 循环体③执行完毕后,接下来会执行循环后的操作表达式④
    1. 执行完循环后操作表达式④, 然后再次判断循环条件表达式②是否为真
    1. 如果②条件为真,就会执行循环体中的语句
    1. 重复上述过程,直到条件不成立就结束for循环
for与while如何选择:
  • 一般情况下while和for可以互换, 但是如果循环执行完毕之后就不需要使用用于控制循环的增量, 那么用for更好
注意点:
  • for循环中初始化表达式,循环条件表达式,循环后操作表达式都可以不写
    (此时:循环条件表达式默认为)即: for( ; ; ) 语句相当于while(1) , 都是死循环
练习1:打印好友列表
for(var i =1;i<3;i++){
console.log("好友列表" + i);
for(var j =1;j<6;j++){
    console.log("    好友" + j);
    }
    }

结果

练习2:打印99乘法表

- 代码:
在这里插入图片描述
- 结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值