其他分享
首页 > 其他分享> > Js中几种循环的使用

Js中几种循环的使用

作者:互联网


在JavaScript中有五种常用的循环,现在来分别介绍一下五种循环的用法。

1.while

当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}。

let num = 0;
while (num < 5) {
   num++;
   console.log(num);
}
// 1
// 2
// 3
// 4
// 5
while (num > 5) {
   num++;
   console.log(num);
}
// 5
// 4
// 3
// 2
// 1

2.do...while

do {循环体} while(表达式)

用法和while相差不大,但有特殊的一点是当while后条件表达式为false时,do内的循环体仍然会执行一次

let num = 0;
do {
   num++;
   console.log(num);
} while (num < 5)
// 1
// 2
// 3
// 4
// 5
do {
   num++;
   console.log(num);
} while (num > 5)

// 1

3.for

for循环是平时用法最多的循环,for循环的循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。因为for循环的单次表达式,条件表达式,末尾循环体可以使用不同的形式,所以for循环很灵活,有多种变式。

shilet num = 0;
// 最基本的用法
for (let i = 5; i > num; i--) {
   console.log(i);
}
// 当单次表达式写在判断条件外部时
let i=5;
for(;i>num;i--){
   console.log(i)
}
// 当单次表达式和条件表达式写在判断条件外部时
for(;;i--){
   if(i>0){
       console.log(i);
  }else{
       break
  }
}
for(;true;){
   if(i>0){
       console.log(i);
  }else{
       break
  }
   i--;
}
// 当作while循环使用
// 死循环 一直打印 for
for(;true;){
   onsole.log('for');
}

for...of...

for...of...通常用来遍历传入对象的属性值,前提传入的对象是一个可迭代对象,不可迭代对象需要转为可迭代对象再遍历.

let arr = [1, 'a', '2', 3, 'b'];
let obj = {
   name: 'aa',
   age: 11
}
for (const value of arr) {
   console.log(value);
}
// 1
// a
// '2'
// 3
// b
for (const value of obj) {
   console.log(value);
}
// TypeError: obj is not iterable 提示obj不是可迭代对象

使用for...of...可以消耗迭代器

// o为生成斐波那契数列的一个迭代器对象
let o = {
   n1: 1,
   n2: 1,
  [Symbol.iterator]() {
       return this
  },
   next() {
       let current = this.n2;
       this.n2 = this.n1;
       this.n1 = this.n1 + current;
       if(current>10) return {value: current,done: true}
       return {value: current,done: false}
  }
}

for (const v of o) {
   console.log(v);
}
// 1
// 1
// 2
// 3
// 5
// 8

for...in...

for...in...通常来遍历传入对象的属性名,该循环没有对对象是否可迭代的要求

let arr = [1, 'a', '2', 3, 'b'];
let obj = {
   name: 'aa',
   age: 11
}

for (const key in arr) {
   console.log(key);
}
// 0
// 1
// 2
// 3
// 4
for (const key in obj) {
   console.log(key);
}
// name
// age

标签:...,console,log,几种,while,num,let,Js,循环
来源: https://www.cnblogs.com/liil2001/p/16499393.html