通过有限次运行相同或类似的逻辑行为, 达成目标结果.
循环
重复执行行为
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)
}