1、循环
for循环的3个条件都是可以省略的,如果没有退出循环的判断条件,就必须使用break语句退出循环,否则就是死循环
1 var x = 0; 2 for (;;) { // 将无限循环下去 3 if (x > 100) { 4 break; // 通过if判断来退出循环 5 } 6 x ++; 7 }
for...in
for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来
1 var o = { 2 name: 'Jack', 3 age: 20, 4 city: 'Beijing' 5 }; 6 for (var key in o) { 7 console.log(key); // 'name', 'age', 'city' 8 }
要过滤掉对象继承的属性,用hasOwnProperty()来实现
1 var o = { 2 name: 'Jack', 3 age: 20, 4 city: 'Beijing' 5 }; 6 for (var key in o) { 7 if (o.hasOwnProperty(key)) { 8 console.log(key); // 'name', 'age', 'city' 9 } 10 }
由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引
请注意,for ... in对Array的循环得到的是String而不是Number
2、while和do...while
用do { ... } while()循环要小心,循环体会至少执行1次,而for和while循环则可能一次都不执行。
3、