for ループ
for(变量 = 初始值 ; 循环条件 ; 变量累加方法) { 循环语句; }
例はより明確です。たとえば、ループは 0 から 7 までの数字を出力します:
<html> <head> </head> <body> <script> for(var i=0;i<8;i++) { document.write("number is "+i+"<br>"); } </script> </body> </html>
ブラウザでの効果:
for ループの最も一般的な場所は、インデックスを使用することです。配列を走査する:
var arr = ['Apple', 'Google', 'Microsoft']; var i, x; for (i=0; i<arr.length; i++) { x = arr[i]; alert(x); }
for ループ 3 つの条件は省略できます。ループを終了するための判定条件がない場合は、break ステートメントを使用してループを終了する必要があります。そうしないと、無限ループになります:
var x = 0; for (;;) { // 将无限循环下去 if (x > 100) { break; // 通过if判断来退出循环 } x ++; }
<!DOCTYPE html> <html> <body> <script> cars=["BMW","Volvo","Saab","Ford"]; for (var i=0;i<cars.length;i++) { document.write(cars[i] + "<br>"); } </script> </body> </html>
for ... in
for ループのバリエーション 本体は 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 ループは直接ループアウトできます。配列のインデックス:
var a = ['A', 'B', 'C']; for (var i in a) { alert(i); // '0', '1', '2' alert(a[i]); // 'A', 'B', 'C' }