计算机最起初的功能就是用来计算的,特别是那些重复的工作要用到循环。JavaScript 循环经常用到,有以下几种方式。
一、for循环
语法:
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句1是初始条件;语句2是结束条件,也就是判断条件;语句3是递增条件。
例如:
var sum=0;
for(var i=0; i<1000; i++){
sum=sum+i;
}
console.log(sum);//499500
使用JavaScript 循环一下子算出来了。
除了用于计算之外,循环最常用的地方是利用索引来遍历数组。
例如:
var arr = ['apple','banana','cat','dog','egg','foot','god'];
var i;
for(i=0; i<arr.length; i++){
console.log(arr[i]);
}
简单的几行代码就可以把数组里面的元素遍历一次。
也许你会问,既然for()里面的是循环条件,如果我什么条件也不添加,会怎么样呢?
如果for( )没添加任何条件,那应该是这样书写的for(;;)因为条件是空,可是还得保持3个条件的语法格式。
例如:
for(;;){
if(i>1000){
break;
}
sum=sum+i;
console.log(sum)
}
然后就会发现,测试的浏览器卡住了,因为for(;;)会进入死循环,也就是会无线循环。浏览器都要崩溃了。这时候要在循环体里面添加break来退出循环。
二、for…in…循环
for…in…用户遍历对象的属性的循环语句。可以把对象的所有属性罗列出来。
例如:
var project = {
name:'小明',
age:18,
school:'附中',
father:'大明',
mother:'阿芳',
'best-friend':'小红',
address:'北京路',
phone:'13314756284'
}
for(var i in project){
console.log(i);
}
因为我们知道,对象会继承父类的属性,所以当我们想要遍历出对象属性的时候,过滤掉那些继承的属性,只得出改对象的属性,我们应该用hasOwnProperty( )方法。
例如:
for(var j in project){
if(project.hasOwnProperty(j)){
console.log(j)
}
}
添加过滤添加就可以。
上面是遍历出对象的属性,如果把for…in…用在数组中,得到的是数组的索引。
例如:
var arr1 = ['apple','banana','cat','dog','egg','foot','god'];
for(var i in arr1){
console.log(i)
}
要注意的是,这种方式的出来的索引不是number类型的,而是字符串类型的,因为索引也是数组的属性。
我们也可以用这种索引的方式访问数组。
例如:
var arr1 = ['apple','banana','cat','dog','egg','foot','god'];
for(var i in arr1){
console.log(arr1[i])
}
三、while循环
For循环有三个条件,二、而while循环只有一个条件,只要满足就继续循环,一旦不满足就结束循环,比较好理解。
例如:
var i =0;
var sum=0;
while(i<1000){
sum=sum+i;
i+=1;
}
console.log(sum)//499500
当i=999时,进行while判断,小于1000,继续循环,循环体中i +1 = 1000,回头继续进行while判断,发现1000不小于1000,不满足条件,所以退出循环。
四、do…while循环
do…while是先执行混循环体再进行判断条件是否满足,所以无论如何,循环体都会至少执行一次。
var i = 0;
var sum = 0;
do{
sum=sum+i;
i+=1;
}while(i<1000)
console.log(sum)//499500
评论前必须登录!
注册