你真的懂循环吗
一、for循环
1、for循环样式
for(var i=0;i<5;i++)
它的条件表达式就是先写for(),在写内部的条件,在js中声明变量也是可以不加var直接就可以
for(i=0;i<5;i++)
但这样写也有一点不对,因为i时局部变量最好还是这样
for(let i=0;i<5;i++)
for循环的书写并没有严格的要求只要你不省略其中的冒号就不会又问题,
var i=0; for(;i<5;i++)
当然可以把变量初始化放出来那么++自然也可放出来,不过最好还是放在代码块的末尾,放在开始会改变他的代码执行的循序
var i=0; for(;i<5;){i++}
2、for死循环样式
for(;;i++)与for(;; )当然你这样写,但是这样写没有什么意义,就是一个死循环,
3、for出错样式
for(var i;i<5;i++)
不声明他就是undefined,未定义是无法和数值做对比的,所有这个循环是不会执行的,undefined++就直接等于NaN了,就是变成了一个不规则的数字
4、for多条件循环
for(var i=0,j=0;i<5,j<3;i++){j++}
觉得这会执行几遍了,其实判断条件就是i<5||j<3如果满足了一个就不会在执行了
5、for循环判断过程
这是一个普通的for
for(var i=0;i<5;i++){
console.log("test")
}
下面这是他的过程,序号1只执行一次,然后是判断条件2,中括号内的代码块3,然后4
5、for循环数组的三种方式
1、
var list=[15,25,35,45,55,65,75,85]
for(var i=0,i<list.length;i++){
console.log(list[i])
}
2、
var list=[15,25,35,45,55,65,75,85]
for(i in list){ //这里是把list的下标传给i
console.log(list[i])
}
3、
var list=[15,25,35,45,55,65,75,85]
for(i of list){ //这里是把list内对应的值传给i,of是es5最新出的
console.log(i)
}
谁最简单一下不久看明白了
二、while循环
1、while样式
var i=0;
while(i<5){
i++;
}
我更推荐while,while速度更快
2、while死循环
while(1)与while(true)
这里while死循环是有很多的我就不一一举例了,你只用记住一条,while循环的括号里只会判断条件的真假,例如
var i=0;
while(i=5){
console.log('test')
}
你甚至都可以在循环中赋值了,但是我说了他只会判断真假,这里就是一个死循环,当然i还是等于0的。
三、forEach函数循环
var list=[15,25,35,45,55,65,75,85]
list.forEach(function(val,index,arr){ //三个形参分别是数组内元素,下标,数组
console.log(val,index,arr)
})
这个是一个比较高级的循环,需要注意的就只有形参书写的循序了
四、流程控制
break与continue
区别就是break是跳出当前循环,后续不再执行
而contiue是跳出这一次循环,在执行下一次循环
五、总结
我在这里列举了三个循环,讲了一些细节,我在说说优点和缺点吧,for循环虽然说写法简单,但是效率低下,这就很致命,还有一个最致命的就是不够高大上,while循环属于那种中规中矩的,和forEach是最好的速度也是最快的,但是只用于数组,while是用的最多的,所以我推荐用while,少用for循环