zoukankan      html  css  js  c++  java
  • Javascript高级编程学习笔记(6)—— 流程控制语句

    话不多说,我们直接开始进入今天的主题

    流程控制语句

    首先什么是流程控制语句呢?

    顾名思义,就是控制流程的语句。

    在JS中语句定义了ECMAScript中的主要语法,让我们可以使用一系列的关键字来完成指定任务。

    语句也是构成一门编程语言旳基础,所以还是有必要记录一下的。

    虽然有些语句不常用,但存在即合理 emm

    if语句

    在大多数编程语言中if语句,是最常用的语句

    语法如下:

    if(条件){
      代码块1    
    }else{
      代码块2  
    }

    当代码块只有一行语句时可以不用添加花括号。

    但是在实际使用过程中,最好都加上花括号以保证代码的可读性

    其主要作用用于控制分支,以区分不同的情况。

    在ES6中条件的小括号是一个单独的作用域,作用域这里不细说后面的文章会写到

    do-while 语句

    这是一种后测试循环语句,即在循环体结束后才进行条件测试,与for、while不同的地方在于do-while中的代码至少会被执行一次

    语法如下:

    do{
        代码块
    }while(条件)

    while 语句

    跟do-while不同,while是一种前测试语句;

    即在循环之前就会对条件表达式求值,如果不满足条件就不会执行循环;

    所以while循环中的代码不一定会执行(如果不满足初始条件的话)

    语法如下:

    while(条件){
        代码块
    }

    for 语句

    for也是一种前测试循环语句,但是for具有循环前初始化变量、定义循环后执行代码的能力

    语法如下:

    for(初始化;条件表达式;循环执行代码){
        代码块
    }

    需要注意的是,for循环只是将变量初始化等与循环有关的语句集中在了一起

    所以while做不到的for也做不到

    并且在for中初始化变量,和在循环外部初始化变量没有什么区别,因为JS中不存在块级作用域(ES6以前)

    除此而外,for中的三个表达式都是可选的,所以为for循环提供了极大的灵活性

    for-in  语句

    跟for不同,for-in是一种精准迭代语句,用于枚举对象属性

    语法如下:

    for(var name in obj){
        代码块
    }

    每一次循环name都会是一个属性名

    在循环体的代码块中可以通过obj[name],的方式获取对象中对应的值

    需要注意:

    1. ECMAScript对象的属性没有顺序,所以遍历的顺序不可预知

    2.如果循环的对象是null或者undefined在老版本中会抛出错误

    3.for-in循环只能遍历出对象上可遍历属性

    label 语句

    label可以为代码添加标签,以供break,continue跳转到指定位置

    语法如下:

    标签名:
    代码块
    
    
    for(var i = 0;;i++){
        break 标签名;  
    }

    多用于多层循环嵌套的情况,便于跳出循环到指定位置

    break、continue语句

    用于控制循环的精确执行

    区别在于:

    break会跳出整个循环

    continue只会跳出当前这一次循环

    这两个语句都可以和label配合使用

    with 语句

    这个语句大家可能不太常见

    其作用是将代码作用域设定到指定对象下

    目的是为了简化大量书写同一对象

    语法如下:

    with(对象){
      代码块  
    }

    代码块中的代码的作用域就是设置的对象

    感觉还是比较好用的,这样就不用使用call来改变函数this指向了

    with不常用当然是有原因的:

    1.严格模式下不能使用

    2.大量使用会导致性能下降,并且会给代码调试造成困难

    switch语句

    用于多分支的情况,避免使用一串的if-else

    语法如下:

    switch(表达式){
        case 值1:
            代码块1
            break;    
        case 值2:
            代码块2
            break;
        case 值3:
            代码块3
            break;
    }

    当表达式的值和case后的值相等时则会执行对应的代码块

    需要注意的是:

    ECMA中的switch的特殊之处在于,case的值不仅限于数值

    甚至可以是对象,也不一定是常量可以是变量,甚至是表达式都可以

    除此而外,switch不会进行类型转换,判断时使用的是全等操作符

    PS:明天出差,可能会拖更,对期待更新的小伙伴说一声不好意思啦(虽然也没什么人期待更新 哭哭唧唧)

  • 相关阅读:
    联想 Vibe Shot(Z90-3) 免recovery 获取ROOT权限 救砖 VIBEUI V3.1_1625
    联想 Z5S(L78071)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.370
    联想 Z5(L78011) 免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 10.5.254
    联想 S5 Pro(L78041)免解锁BL 免rec 保留数据 ROOT Magisk Xposed 救砖 ZUI 5.0.123
    第二阶段 冲刺八
    第二阶段 冲刺七
    第二阶段 冲刺六
    第二阶段 冲刺五
    代码大全阅读笔记03
    学习进度十二
  • 原文地址:https://www.cnblogs.com/lhyxq/p/10075277.html
Copyright © 2011-2022 走看看