JavaScript学习总结-流程语句

一、循环语句

1、while

  • 语法

    1
    2
    3
    while(条件表达式){
    循环执行代码段
    }
  • 流程
    • 判断条件表达式的值
    • 当值为true时循环执行代码段
    • 当值为false时退出循环体
  • 热性
    • 先检查条件,再执行循环
    • 条件不满足则循环一次也不执行
  • 时机
    • 一个动作被重复执行到满足某个 条件时

2、do-while

  • 语法

    1
    2
    3
    do{
    循环执行的代码段
    }while(条件表达式)
  • 流程

    • 先执行循环体内代码段再进行判断
    • 如果表达式的值为true,则重复执行代码段
    • 如果表达式的值为false,则退出循环体
  • 特性

    • 先执行循环体,再进行条件判断
    • 循环体内代码至少执行一次
  • 时机

    • 希望一个动作至少被执行一次时

3、for

  • 语法

    1
    2
    3
    for(循环变量 = 初值;循环条件;递增/递减计数器){
    循环代码段
    }
  • 流程

    • 用循环变量初始值与循环条件相比较,确定返回值
    • 如果返回值为true则执行循环体
    • 执行完一次后进行递增/递减运算
    • 将运算结果与循环条件相比较
    • 如果返回值为true则继续执行循环体
    • 如果返回值为false则退出循环体
  • 时机

    • 重复一个动作到一定次数时

4、for-in

  • 语法

    1
    2
    3
    for(声明变量 in 对象){
    代码段
    }
  • 作用

    • 枚举对象属性
  • 注意事项

    • 循环输出的属性顺序不可预知
    • 对象的值不能是nullundefined

二、跳转语句

1、return

  • 终止函数体的运行,并返回一个值

2、break

  • 终止整个循环,不再进行判断

3、continue

  • 结束本次循环,接着去判断是否执行下次循环

三、选择语句

1、if

  • 语法

    1
    2
    3
    4
    5
    6
    7
    if(条件表达式1){
    代码段1
    }else if(条件表达式2){
    代码段2
    }else{
    代码段3
    }
  • 流程

    • 判断条件1,如果返回值为true则执行代码段1
    • 如果条件1的返回值为false则跳过语句1并检测条件2
    • 如果所有的表达式的值均为false则执行else后面的语句
  • 特性

    • 结构复杂,可嵌套

    • 可测试多个条件表达式

    • 表达式的值具有线性特征

    • 表达式的值是动态的

    • 适用于任意类型的数据

    • 可处理复杂的逻辑关系

2、switch

  • 语句

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch(条件表达式){
    case 标签1:
    代码段1;
    break;
    case 标签2:
    代码段2;
    break;
    …… ……
    default:
    代码段n;
    }
  • 流程

    • 计算表达式的值,并与各标签相比较
    • 若找到与之匹配的标签,则执行其后的代码段
    • 若没有找到与之匹配的标签则执行default之后的代码段
  • 格式

    • case标签为常量,可以是字符串或数字
    • 每个标签均以冒号:结束
    • 虽然breakdefault为可选性,但为了逻辑清晰最好不要省略
    • case标签的值必须和条件表达式在值完全匹配
  • 特性

    • 结构简洁,专为多重选择设计
    • 仅可测试一条条件表达式
    • 表达式的值具有离散性
    • 表达式的值是固定的,不会动态变化的
    • 仅能应用整数,枚举,字符串等类型数据
    • 仅能处理多个枚举型逻辑关系

四、异常处理语句

  • throw
    • 主动抛出异常
  • try
    • 指明需要处理的代码段
  • catch
    • 捕获异常
  • finally
    • 后期处理
坚持原创技术分享,您的支持将鼓励我继续创作!