回调函数
回调函数是:在一个函数中,又调用了一个函数,叫回调函数
例如:
<button id="btn">按钮</button><script>const btn = document.getElementById('btn')btn.addEventListener('click', () => {console.log('这是回调函数')})</script>
比如这个点击事件,通过函数 addEventListener 定义点击事件,参数是传入的另一个函数,那么这样的函数就称之为回调函数。
还有就是数组常用的 map 方法等等:
const res2 = list.map((item) => {item.age += 30return item})
当出现类似下面这样的业务时候,一个回调函数里面又套了回调函数,请求时就是等这段代码结果产生之后再执行,那么这样回调套回调就会很麻烦了,不利于阅读,开发维护都麻烦
回调地狱就是下面的情况
axios({method: '',url: ''}).then((res) => {axios({method: '',url: ''}).then((res) => {axios({method: '',url: ''}).then((res) => {})})})
递归调用函数
递归
在函数的内部执行函数本身称为递归,递归的本质是一个循环。
function f() {console.log(1)f() // 递归}f() // 没有条件阻止,递归就是一个死循环// 1// 1// ...
使用递归实现递减
设置一个条件。
function minus(n) {if (n === 0) return // 条件,到 0 退出console.log(n)minus(n - 1) // 递归 - 1}minus(5)// 5// 4// 3// 2// 1
