闭包
-
涉及变量作用域
-
内部函数
使用外部函数
的变量
|
|
递归
-
自己调用自己,一般用于
给定条件
过滤/计算
数据 -
著名案例
斐波那契数列
|
|
回调
-
!!!JavaScript 默认是同步的,并且是单线程的。这意味着代码不能创建新线程并行运行。!!!
-
函数调用另一个函数
-
func_1
作为func_2
的参数
,func_2(func_1)
#. 同步回调(立即执行)
- 最佳案例
Array.prototype.map()
|
|
#. 异步回调(等待执行)
- 最佳案例
Promise.prototype.then()
|
|
#. 回调地狱
如果调用嵌套增加,代码层次会变得很深,维护难度也随之增加,尤其是包含了很多循环和条件等。
嵌套调用的“金字塔”随着每个异步行为会向右增长。很快它就失控了。
幸运的是,有其他方法可以避免此类金字塔。最好的方法之一就是 promise
。