• javascript挑战编程技能第七题:让代码做重复的事情


    这节课我随便讲讲javascript中的循环语句。

    循环最应该注意的是写出死循环的代码,如果你在调试程序的时候,发现浏览器卡住了,点击关闭按钮都很难关掉,

    那就很有可能是执行了死循环的代码了。

    如果篇幅不长的话,我们就再做一道题目。

    对了,这个系列的正确阅读方式应该是先看题目,然后自己做,我的代码只是一个参考。

    好吧,开始吧!

    1、do-while

    先看代码

    do{

    //执行一些代码(这里面被称为循环体)

    }while(这里是一个条件)

    do-while的特点就是先执行循环体的代码再判断条件是否成立。当条件成立时再执行循环。

    也就是就算一开始条件是错误的,循环体也会至少执行一次。

    如果你在这里面写了一个永真的条件,那就会变成死循环。

    2、while

    while(条件成立){

    //循环体

    }

    与do-while差不多的问题,但是while是先判断条件再执行循环体。

    当一开始条件为假是,一次都不会执行。

    3、for(我觉得这个语句跟if一样算是js中最常用的语句了,基本上会这两个语句就能写代码了,额)

    for有好几种变体。

    var i = 0;

    for(;i<10;i++){

    //循环体

    }


    var i =0;

    for(;i<10;){

    //循环体

    i++;

    }//这种格式表现与while相同


    这里看一下for的执行顺序

    for(1初始化参数;2判断条件;4变量自增长){

    3条件成立执行循环体

    }

    这里会有好几种产生死循环的情况。

    ①初始化参数没给

    ②判断条件永真

    ③变量没有自增长导致条件用真

    不要觉得这个很简单就不注意,所有的循环语句都是需要特别注意的,浏览器有报错机制还不会出现什么问题。

    如果代码是直接跑在内存里的,就有可能搞坏硬件哦。

    4、for-in

    for-in是一种迭代语句,用来枚举对象的属性。注意这里是属性,我们前面说过了,函数也是一种对象,也是对象的属性。

    有些对象执行过一些方法之后,可能会把对象内部的函数暴露出来,使用for-in会枚举到函数,产生一些预期之外的错误。

    特别是使用jquery的时候,是比较常见的错误。

    提到迭代语句,顺便说一下,js中比较常用的map,这要求对象是一个数组。

    如 [1,2,3].map(function(item){

      return item+1

    })

    就会产生一个新的数组。这个在reactjs中还相对比较常用。

    在angularjs中也有一个迭代语句angular.foreach

    angular.foreach(obj,function(data,index,array){

    //data 就是obj[index]

    这也是一个迭代语句,在angularjs中也比较常常使用到。没有注意是否会枚举内部函数。感兴趣的朋友可以测试一下

    })

    基本上以上提到的语句就是js中常用的循环了。

    提到循环就顺便提一下,break和continue语句。

    break和continue语句是用于打断循环的。

    遇到break会立即结束循环,或者称为跳出循环

    遇到continue则跳出当前循环。

    举两个例子

    var sum = 0;

    for(var i = 0 ; i<10; i++){

    if(i>1){

    sum+=i;

    break;

    }

    }

    console.log(sum);

    上面的例子执行完sum=2;

    var sum = 0;

    for(var i = 0 ; i<10; i++){

    if(i>1){

    sum+=i;

    continue;

    }

    }

    console.log(sum);

    上面的例子执行完sum=44;

    (break还有一种和swith组合的用法,这里不提了)


    第七节课就到这里结束了吧,

    下一节课,我们写一个算法输出乘法口诀表.
    谢谢你的阅读.
    有什么问题可以直接联系我本人微信:yu_xiaohu
    希望大家关注我的个人公众号,有更新会在上面同步发布哦.
    我是小虎Oni,希望你开心.




  • 相关阅读:
    Centos常用命令之:文件与目录管理
    Centos常用命令之:ls和cd
    Centos6.9连接工具设置
    CentOS6.9安装
    mysql-5.7.18-winx64 免安装版配置
    Struts1开山篇
    参考用bat文件
    QT界面开发-c++ 如何在Qt中将QVariant转换为QString,反之亦然?【转载】
    QT界面开发-QAxObject 解析 excel 时报错error LNK2019: 无法解析的外部符号
    QT界面开发-QAxObject 读写excel(COM组件)
  • 原文地址:https://www.cnblogs.com/xiaohuoni/p/7642280.html
Copyright © 2020-2023  润新知