1.for循环

1.for有三个表达式:

  1. 声明环境变量;
  2. 判断循环的条件;
  3. 更新循环变量;

2.for循环执行的特点:

  1. 先判断在执行;
  2. 这三个表达式有多重身份组成,第二个判断条件用&& 或||连接
for(var i = 0 ; i <10 ; i++){
	console.log(i);// 0 1 2 3 4 5 6 7 8 9 10
}

2.while循环

循环特点:先判断后执行;

var num = 1;//1、声明循环变量          
while (num<10){//2、判断循环条件;
    console.log(num);//3、执行循环体操作;
    num++;//4、更新循环变量;
}

3.do while循环

特点:先执行在判断,即使初始条件不成立,dowhile循环至少执行一次,也就是dowhile比while循环多执行一次。

var num = 10;          
do{
    console.log(num);//10 9 8 7 6 5 4 3 2 1 0
    num--;
    }while(num>=0);
            
   console.log(num);//-1

循环的嵌套:
外层循环控制行,内层循环控制列
可解决多行多列的结构

for(var j = 1; j<9 ;j++){
	for(var i = 0;i < j+1 ; i++){	
		console.log("*");
	}
	console.log("<br>")
}

javascript里的for循环 js中for循环的几种方式_i++

4.for in

  1. for…in 循环返回的值都是数据结构的键值名;
  2. 遍历对象时返回的是对象的key值;遍历数组时是返回数组的下标;
  3. for…in 循环不仅可以遍历数字键名,还可以遍历原型上的值和手动添加的值
  4. 特定情况下,for…in 可以遍历任意顺序的键名
let obj = {
	name:"wangyufei",
	age : "18",
	height : "180"
}
for(let i in obj){
	console.log(i,obj[i]);
}

javascript里的for循环 js中for循环的几种方式_数组_02

5.for of

  1. 遍历的是数组中的元素;
  2. 一个数据结果只要部署了Symbol.iterator 属性,就被视为具有iterato接口,就可以使用for of 属性;
  3. 以下数据结构部署了Symbol.iterator 属性,遇上这些属性,都可以使用for of 进行遍历;
  1. 数组Array;
  2. Map;
  3. String;
  4. arguments对象;
  5. Nodelist对象,就是获取的dom列表集合;
  1. 如果要遍历一个对象的键值,就会报错,原因是没有Symbol.iterator属性;
  2. for of 可以与return,break、continue 配合使用,可以随时退出循环;
  3. javascript里的for循环 js中for循环的几种方式_数组_03

  4. 6.类似数组的对象操作
// 字符串
        var str = "hello";
        
        for (let s of str) {
          console.log(s); // h e l l o
        }
        
        // DOM NodeList对象
        let paras = document.querySelectorAll("p");
        
        for (let p of paras) {
          p.classList.add("test");
        }
        
        // arguments对象
        function printArgs() {
          for (let x of arguments) {
            console.log(x);
          }
        }
        printArgs('a', 'b');// 'a' 'b'

6.循环控制语句

  1. break:跳出本次循环,继续执行循环后面的语句;如果循环有多层,则break只能跳出本次循环,也就是一层;
  2. continue: 跳过本次循环的剩余代码,继续执行下一次循环;
    (1) 对于for循环,continue之后执行的语句,是循环变量更新语句i++;
    (2)对于while,dowhile循环,continue之后执行的语句,是循环条件判断;
    因此,使用这两个循环时,必须将continue放到i++之后使用,否则continue将跳过i++进入死循环;
for(var i=0;i<10;i++){
        if(i == 5){
            break;
        }
        console.log(i);//0,1,2,3,4
    }

    for(var i=0;i<10;i++){
        if(i == 5){
            continue;
        }
        console.log(i);//0,1,2,3,4,6,7,8,9
    }