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、