JavaScript学习日记4 循环
JavaScript的循环有两种,一种是for
循环,通过初始条件、结束条件和递增条件来循环执行语句块:
1 var x = 0; 2 var i; 3 for (i=1; i<=10000; i++) { 4 x = x + i; 5 } 6 x; // 50005000
让我们来分析一下for
循环的控制条件:
- i=1 这是初始条件,将变量i置为1;
- i<=10000 这是判断条件,满足时就继续循环,不满足就退出循环;
- i++ 这是每次循环后的递增条件,由于每次循环后变量i都会加1,因此它终将在若干次循环后不满足判断条件
i<=10000
而退出循环。
注:for
循环的3个条件都是可以省略的,如果没有退出循环的判断条件,就必须使用break
语句退出循环,否则就是死循环:
for ... in
循环
for
循环的一个变体是for ... in
循环,它可以把一个对象的所有属性依次循环出来:
1 var o={ 2 name:'jack', 3 age:20, 4 city:'beijing' 5 }; 6 7 for(var key in o){ 8 alert(key); 9 } // name age city
while
for
循环在已知循环的初始和结束条件时非常有用。而上述忽略了条件的for
循环容易让人看不清循环的逻辑,此时用while
循环更佳。
while
循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环
do ... while
最后一种循环是do { ... } while()
循环,它和while
循环的唯一区别在于,不是在每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件:
注意:用do { ... } while()
循环要小心,循环体会至少执行1次,而for
和while
循环则可能一次都不执行。
练习
请利用循环遍历数组中的每个名字,并显示Hello, xxx!
:var arr = ['Bart', 'Lisa', 'Adam'];请尝试for
循环和while
循环,并以正序、倒序两种方式遍历。
for循环正序
var arr = ['Bart', 'Lisa', 'Adam']; var i , x; for(i=0;i<arr.length;i++){ x=arr[i]; alert('hello,'+x+'!'); }
for循环倒序
1 var arr = ['Bart', 'Lisa', 'Adam']; 2 var i , x; 3 for(i=0;i<arr.length;i++){ 4 arr.reverse(); 5 x=arr[i]; 6 alert('hello,'+x+'!'); 7 }
while循环正序
1 var arr = ['Bart', 'Lisa', 'Adam']; 2 var n =0; 3 while(n<arr.length){ 4 alert('hello,'+arr[n]+'!'); 5 n=n+1; 6 }
while循环倒序
var arr = ['Bart', 'Lisa', 'Adam']; var n =0; while(n<arr.length){ arr.reverse(); alert('hello,'+arr[n]+'!'); n=n+1; }