函数的return
连续返回值:
真值缩小
满足条件的范围越来越小,这种写法不能写成对象,因为范围不能在对象里面使用
return break continue的区别
函数内返回函数
回调函数
将函数作为参数传入到另一个函数中执行.
时间间隔函数
怎么停下来?
有id,每次执行时,clearInterval
使用场景
1.当需要在某个固定时间后,执行指定的函数,
需要使用回调函数
2.当需要在某个事情,处理完成后,在执行制定的函数,也需要使用回调函数.
3.可以作为条件带参传入回调函数,用来作为判断条件的语句
4.可以作为函数执行时的优先顺序传入不同的回调函数.
for循环是一个同步的循环,settimeout是一个异步的调用.
因为for循环,settimeout是一个异步的不会等待时间完成后,再继续循环,因此循环在这里知识开启了10个settimeout而并不是每次循环都等待settimeout 1秒后再触发循环.所以10词循环先完成,这时候i是10,等待1秒后,打印i的时候,i已经是10了,所以会打印10个10.
settimeout在执行是可以传参,开启时i,这时候等待时间过后打印的就是传入的i.
桥接模式
4.
递归
当前函数调用自身的函数叫做递归
递归不会死循环,堆栈上限溢出
就会报错,包错的同时就会阻止调用
造成的原因:
解决方法:设置if上限多次少次,再用return跳出
空间复杂度和时间复杂度:
占用空间越大,空间复杂度越大,
占用堆栈存储空间越小,空间复杂度越小.
算法:
概念:空间复杂度,时间复杂度越小,越优.
有时候会牺牲空间复杂度,来换取时间复杂度降低.
递归的工作原理:
下面的非尾递归
函数作用域:
函数执行完成,作用域的空间会被释放出来.
函数的调用与备份函数:
每执行一次,会重新创造一个备份函数,老师的超过8000就报错了.
递归求1---100的和
8
修改成尾递归:
广遍历对象的方法:
广度便利和深度便利:
深度遍历(递归这么用)
递归一般不用于广度便利,只用作深度便利,广度便利速度慢
遍历表:
单表
使用while循环,必须保证固定的一个属性才可以深遍历