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

来源:互联网 发布:协和医院app挂号知乎 编辑:程序博客网 时间:2024/05/18 01:51

这节课我随便讲讲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,希望你开心.




0 0