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