javascript 基础之 - 迭代递归总览

通过有限次运行相同或类似的逻辑行为, 达成目标结果.

循环

重复执行行为

  • while , 先判断再执行, 可能一次都不执行
// 死循环
while(true){
}

// 非死循环都有终止条件,退出循环
// 循环体执行结果, 应是努力靠近判断的边界条件, 以期结束循环
var a = 0
while(a<10){
    a ++;
    console.log(a);
}

// 用 continue 和 break 改变循环行为; while 不能出现 return
var b = 0
while(b<10){
    a++
    // 跳过后面所有的执行
    if(a===4){
        continue;
    }
    // 终止执行
    if(a===6){
        break;
    }
    console.log(b)
}
// 打印结果 1, 2,3,5
  • do while , 先执行后判断, 至少执行一次
// continue 和 break 的用法与 while 语句一致
var a = 0
do{
    a++;
    console.log(a);
} while(a<10);
// 打印 1-10
迭代

按顺序访问集合中的同一层次的每一项

// 常规迭代: for , for in , for of
// for
for(var i=0;i<10;i++){}

// for in
var obj = {}
for(attr in obj){}

// for of
var arr = []
for(var item of arr){}

数组和对象还有一些其他的方法, 后面再单独写

遍历

按顺序访问集合中的所有的端节点, 比如常见树形结构

递归

大问题的解决, 前提条件是小问题的解决, 小问题的解决又类似大问题的解决方法.
例如阶乘:

/**
1!=1
2!=1*2
3!=1*2*3
4!=1*2*3*4
5!=1*2*3*4*5
...
n!=n*(n-1)!
*/

function fact(num){
    return num*fact(num-1)
}

猜你喜欢

转载自blog.csdn.net/haokur/article/details/80493788