zoukankan      html  css  js  c++  java
  • 4.流程控制语句

    流程控制语句

    学习要点:
    1.语句的定义
    2.if语句
    3.switch语句
    4.do...while语句
    5.while语句
    6.for语句
    7.for...in语句
    8.break和continue语句
    9.whit语句

    ECMAScript-262规定了一组流程控制语句。语句定义了ECMAScript中的只要语法,语句通常由一个或者多个关
    键字来完成给定的任务。诸如:判断、循环、退出等。

    一、语句的定义

    在ECMAScript中,所有的代码都是由语句来够构成的。语句表明执行过程中的流程、限定与约定,形式上可以是
    单行语句,或者由一对大括号“()”括起来的复合语句,在语法描述中,复合语句整体可以作为一个单行语句处
    理。

    语句的种类
    类型 子类型 语法
    声明语句 变量声明语句 var box = 100;
    标签声明语句 label:box;

    表达式语句 变量赋值语句 box = 100;
    函数调用语句 box();
    属性赋值语句 box.property = 100;
    方法调用语句 box.method();

    分支语句 条件分支语句 if{} else{}
    多重分支语句 swich(){case n :....}


    二、if语句

    If语句即条件判断语句,一共有三种格式:

    1.if(条件表达式)语句;
    var box = 100;
    if(box>50)alert(‘box大于50’); //一行的if语句,判断后执行一条语句

    var box = 100;
    if(box>50) //if里面的括号(box>50)返回的结果转成布尔值是true
    alert(‘box大于50’); //两行的if语句,判断后执行一条语句,如果if语句里的表达式结果返回
    的是false,只会不执行后面一条语句
    alert(‘不管的if是true还是false,我都会执行’);


    var box = 10;
    if(box>50){
    alert(‘box大于50’);
    alert(‘不管的if是true还是false,我都会执行’);
    } //这里是一条复合语句,被当做一条语句来对待了,代码块的功能体现出来了
    //如果后面跟了另一条复合语句,就会执行后面的复合语句

    var box = 100;
    if("Lee"){ //()里面如果时123会自动转成true,0转换成了false,'Lee'转换成了true如果是空就不执行
    alert(box);
    }

    对于if 语句括号里的表达式,ECMAScript会自动调用Boolean()转型函数将这个表达式的结果转换成一个布尔
    值。如果值为true,执行后面的一条语句,否则不执行。

    PS1:if语句括号里的表达式如果为true,只会执行后面一条语句,如果有多条语句,那么就必须使用复合语
    句把多条语句包含在内。

    PS2:推荐使用第一种或者第三种格式,一行的if语句,或者多行的if复合语句。这样就不会因为多条语句而
    造成混乱。

    PS3:复合语句我们一般喜欢称为:代码块。


    2.if(条件表达式){语句;}else{语句;}


    var box = 100;
    if(box > 50){
    alert('box大于50'); //条件为true,执行这个代码块
    }else{
    alert('box小于50'); //条件为false,执行这个代码块
    }


    3.if(条件表达式){语句;}else if(条件表达式){语句;}.......else{语句;}

    var box = 100;
    if(box >=100){ //如果满足条件不会执行下面的任何分支
    alert('甲');
    }else if(box>=90){
    alert('乙');
    }else if(box>=80){
    alert('丙');
    }else{
    alert('丁');
    }


    三、switch语句

    switch语句是多重条件判断,用于多个值相等的比较。

    var box = 1;
    swich(box){ //用于判断box相等的多个值
    case 1: //case1:相当于if语句里的(box==1),如果box是1的话
    alert('one');
    break; //break;用于防止语句的穿透
    case 2:
    alert('two');
    break;
    case 3:
    alert('three');
    break;
    default; //相当于if语句中的else,否则的意思
    alert('出错');
    }


    四、do...while语句

    do...while语句是一种先运行,后判断的循环语句。也就是说,不管条件是否满足,至少先运行一次循环体。

    var box = 1;
    do{ //如果是1,先执行五次,如果是10,执行1次
    alert(box);
    box++;
    }while(box<=5); //先运行一次,在判断

    五、while语句

    while语句是一种先判断,后运行的循环语句。也就是说,必须满足条件了之后,方可运行循环体。
    var box = 1; //如果是1,先执行五次,如果是10,不执行
    while(box<=5){ //先判断,再执行,条件不满足时不执行
    alert(box);
    box++;
    }


    六、for语句

    for语句也是一种先判断,后执行的循环语句。但它具有执行循环之前初始变量和定义循环后要执行代码的能力。
    for(var box = 1 ; box <= 5 ; box ++){ //第一步:声明变量var box = 1;
    alert(box); //第二步:判断box<=5
    } //第三步:alert(box)
    //第四步:box++
    //第五步:从第二步再来


    七、for...in语句

    for...in语句是一种精准的迭代语句,可以用来枚举对象的属性。

    var box ={ //创建一个对象这个对象有三个属性name,age,height
    'name' : 'journey', //键值对,左边是属性名,右边是值
    'age':23,
    'height':175
    };
    for(var p in box){ //枚举出对象的所有属性name,age,height分别赋给box
    alert(p);
    }


    八、break和continue语句

    break和continue语句用于在循环中精确的控制代码的执行。其中,break语句会立即退出循环,强制继续执
    行循环体后面的语句。而continue语句退出当前循环,继续后面的循环。

    for(var box=1; box <= 10; box ++){
    if(box ==5)break; //如果box是5,就退出当前循环及后面的循环
    document.write(box);
    document.write('<br />');
    }

    for(var box=1;box <= 10; box++){
    if(box==5)continue; //如果box是5,就退出当前循环,继续后面的循环
    document.write(box);
    document.write('<br />')
    }


    九、with语句

    with语句的作用是将代码的作用域设置到一个特定的对象中。
    var box={ //创建一个对象
    'name':'journey', //键值对
    'age':23,
    'height':175
    };

    var n = box.name; //从对象里取值赋给变量
    var a = box.age;
    var h = box.height;

    可以将上面的三段赋值操作改写成:
    with(box){ //省略了box对象名
    var n = name;
    var a = age;
    var h = height;
    }

  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/journey-IT/p/5260172.html
Copyright © 2011-2022 走看看