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)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值