JS for循环和其余循环的总结

1.用得最多的for循环; break;可以中断循环

let str = '';
for(let i =0; i < 3; i++){
  str = str + i
}
console.log(str)  //012

2.do...while语句创建一个执行指定语句的循环,直到condition值为false。在执行statement后检测condition,所以statement至少执行一次。
do
statement
while (condition)

var list = [
 { name: '你好', id: 0 },
 { name: '你好', id: 4 },
 { name: '你好', id: 2 },
 { name: '你好', id: 5 },
 { name: '你好', id: 6 },
]
var i = 0;
do{
 i += 1
 console.log(list[i])
} while(list[i].id == 2)
// {name: "你好", id: 4}

3.for...in 语句任意顺序遍历一个对象的除Symbol以外的可枚举属性,用法是为了遍历对象而构建的,不建议和数组一起使用
for (variable in object)
statement
variable:在每次迭代时,variable会被赋值为不同的属性名。

var obj = {  a: 1, b: 2, c: 3 }
for(var i in obj){
  console.log('键名:' + i + '值:' + obj[i])
}
//键名:a 值: 1
//键名:b 值: 2
//键名:c 值: 3

4.for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义的迭代钩子,并为每个不同属性的值循环语句可以由break, throw continue或return终止迭代器关闭。
for (variable of iterable) {
statements
}

迭代Array
const arr = ['a','b','c'];
for(const val of arr){
  console.log(val)
}
//a
//b
//c

迭代String
let iterable = "boo";
for (let value of iterable) {
  console.log(value);
}
// "b"
// "o"
// "o"

迭代 TypedArray
let iterable = new Uint8Array([0x00, 0xff]);
for (let value of iterable) {
  console.log(value);
}
// 0
// 255

迭代Map
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
for (let entry of iterable) {
  console.log(entry);
}
// ["a", 1]
// ["b", 2]
// ["c", 3]
for (let [key, value] of iterable) {
  console.log(value);
}
// 1
// 2
// 3

迭代 Set
let iterable = new Set([1, 1, 2, 2, 3, 3]);
for (let value of iterable) {
  console.log(value);
}
// 1
// 2
// 3

迭代 arguments 对象
(function() {
  for (let argument of arguments) {
    console.log(argument);
  }
})(1, 2, 3);
// 1
// 2
// 3

5.for await...of 语句创建一个循环,该循环遍历异步可迭代对象以及迭代对象:内置的 String, Array,类似数组对象 (例如 arguments 或 NodeList),TypedArray, Map, Set 和用户定义的异步/同步迭代器语法
for await (variable of iterable) {
statement
}
迭代异步生成器

async function* asyncGenerator(){
  var i = 0;
  while (i < 3){
    yield i++;
  }
}
(async function() {
  for await (num of asyncGenerator ()){
    console.log(num)
  }
})()
//0
//1
//2

6.while 语句可以在某个表达式为真的前提下,循环执行指定一段代码,直到表达式不为真时结束语法
while (condition)
statement

let n = 0;
while(n < 3){
  n++;
}
console.log(n)
//3

7.switch 语句一个表达式,将表达式的值与case字句匹配,并执行与该情况相关联的语句(不是循环)类似if判断

let str == 'holle';
switch(str){
  case 'world':
      //当str的结果与value1匹配时,执行此语句结束;
    break;
  ...
  case 'holle':
      //当str的结果与value4匹配时,执行此语句结束;
    break;
  default:
      //当传值和值都不匹配时,结束
    break;
}

目前所学到有六种循环,正在挖掘中。。。

posted @ 2021-07-19 15:44  夏季的雨  阅读(176)  评论(0)    收藏  举报