for……in循环语句
/*for……in可以把一个对象的所有属性依次循环出来*/ ???????var o = { ???????????name:‘Jack‘, ???????????age:20, ???????????city:‘Beijing‘ ???????} ???????for ( var key in o) { ???????????alert(key);//‘name‘,‘age‘,‘city‘ ???????}
/*要过滤掉对象继承的属性,用hasOwnProperty()来实现*/ ???????var o = { ???????????name:‘Jack‘, ???????????age:20, ???????????city:‘Beijing‘ ???????}; ???????for(var key in o) { ???????????if(o.hasOwnProperty(key)) { ???????????????alert(key);//‘name‘,‘age‘,city ???????????} ???????}
/*由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for……in循环可以直接循环出Array的索引*/ ???????var a = [‘A‘ , ‘B‘ ,‘C‘]; ???????for (var i in a) { ???????????alert(i);//‘0‘,‘1‘,‘2‘ ???????????alert(a[i]);//‘A‘,‘B‘,‘C‘ ???????}
请注意,for……in对Array的循环得到的是string而不是number
for循环在已知循环的初始和结束条件时非常有用。而上述忽略了条件的for循环容易让人看不清循环的逻辑,此时用while循环更佳
while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。比如我们要计算100以内所有奇数之和,可以用while循环来实现:
var x = 0; ???????var n = 99; ???????while( n > 0 ){ ???????????x = x + n; ???????????n = n - 2; ???????} ???????alert(x);//2500
在循环内部变量n不断自减,直到变为-1时,不再满足whlie条件,循环退出。
do……while循环
它和while循环的唯一区别在于,不是每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件
???????var n = 0 ; ???????do { ???????????n = n + 1 ; ???????} while ( n < 100); ???????alert(n);//100 ???????????
/*要过滤掉对象继承的属性,用hasOwnProperty()来实现*/
var o = {
name:‘Jack‘,
age:20,
city:‘Beijing‘
};
for(var key in o) {
if(o.hasOwnProperty(key)) {
alert(key);//‘name‘,‘age‘,city
}
}
js循环
原文地址:http://www.cnblogs.com/yuanxinru321/p/7545706.html