当前位置 : 主页 > 网络编程 > JavaScript >

详解Javascript基础之循环

来源:互联网 收集:自由互联 发布时间:2022-05-11
目录 循环 for for-in for-of while do-while 跳出循环 总结 循环 for 循环是任何一门语言都会有个命令,用于反复执行某段代码。 例如,循环代码块5次: for (let i = 0; i 5; i++) { let text = `当前数字
目录
  • 循环
    • for
    • for-in
    • for-of
    • while
    • do-while
      • 跳出循环
  • 总结

    循环

    for

    循环是任何一门语言都会有个命令,用于反复执行某段代码。

    例如,循环代码块5次:

    for (let i = 0; i < 5; i++) {
      let text = `当前数字为${i}`
      console.log(text)
    }
    
    

    // 输出结果:
    当前数字为0
    当前数字为1
    当前数字为2
    当前数字为3
    当前数字为4

    此例中,let i = 0是声明循环的计次变量,i < 5是循环终止条件,i++是计次变量更新步长,{}内的所有代码为循环体内代码块。

    具体流程是:计次变量进行终止条件判断运算,如果结果为true,则循环体执行,结束后进行步长更新运算,从而得到新的结果再次参与判断;如果结果为false,则立刻终止循环;

    所以想要控制循环次数,可以通常改变判断条件实现,如果循环条件永远为true,则就是一个死循环。

    for-in

    for-in循环是一种特殊循环,可用于循环对象或数组(通常循环数组,使用for-of)

    let o = {
      name: 'dapiaoliang',
      age: 18,
      sex: 'woman'
    }
    
    // 将对象内的所有键值对循环输出, 此时可以使用for-in
    for (let key in o) {
      let text = `当前属性名:${key}, 值:${o[key]}`
    }
    
    

    // 结果(这种循环输出顺序可能会不一样,但数量不变)
    当前属性名:name, 值:dapiaoliang
    当前属性名:age, 值:18
    当前属性名:sex, 值:woman

    由此可见,for-in 用于循环对象内所有的键值对,具体输出顺序可能会发生变化,但是每个键值对都会被循环一次。

    for-of

    for-of时一种专门用于循环数组或类似数组结构(Iterator接口)的循环命令

    let arr = ["dapiaoliang", 18, 'woman']
    
    for (let value of arr) {
      let text = `当前值是:${value}`
      console.log(text)
    }
    
    

    // 结果
    当前值是:dapiaoliang
    当前值是:18
    当前值是:woman

    类似for-in,可直接循环数组的每一项数据

    while

    while是for的一个变种。(不常用)

    while (条件) {
    	循环体
    }
    

    当条件为true,循环体就会执行,这种循环没有计次变量,不需要更新步长。所以条件通常需要是一个可变参数,如果不是可变参数,就需要在循环体内,有明确的终止条件

    do-while

    do-while是一种特殊的while循环(不常用)

    do {
      循环体
    }while(条件)
    

    当前数字为0
    当前数字为1
    当前数字为2
    当前数字为4

    看起来是将while的条件和循环体交换了位置,所以这种循环体,在第一次时,是不需要进行判断条件就会执行,执行结束后,再进行判断,判断结果决定下一次是否会循环

    所以,do-while的条件是决定下一次是否循环,而第一次永远都会执行,所以可以理解为至少执行一次的while循环

    跳出循环

    如果在循环体内由于某些原因,需要在代码块内跳出循环,可以使用对应的关键字。

    break用于永久终止此循环,continue用于终止当前这次循环(立刻进入下一次)

    例如,跳过i = 3时情况

    for (let i = 0; i < 5; i++) {
      if (i === 3) {
        continue
      }
      let text = `当前数字为${i}`
      console.log(text)
    }
    

    上述例子,在i=3时,循环体内判断为真,执行continue,那么此次后续两行代码不会执行,会立刻进入下一次循环。

    for (let i = 0; i < 5; i++) {
      if (i === 3) {
        break
      }
      let text = `当前数字为${i}`
      console.log(text)
    }
    
    

    当前数字为0
    当前数字为1
    当前数字为2

    此时判断内是break,那么当i=3时,执行了break,那么后续所有次数的循环都不会执行。break会把整个循环全部关闭。

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!

    上一篇:Node连接MySQL并封装其增删改查的实现代码
    下一篇:没有了
    网友评论