JavaScript高阶函数
高阶函数是什么?
高阶函数可以被简单理解为函数的高级应用,JavaScript中函数可以被当成值来对待,基于这个特性实现函数的高级应用
值就是 JavaScript中的数据,如数值,字符串,布尔值,对象
函数
函数分为具名函数和匿名函数
具名函数指函数要有具体的名称,匿名函数是没有名字的函数
具名函数
function fun() {
console.log('fun函数执行中。。。')
}
fun()
匿名函数
有关键词 function, 有小括号,有大括号,就是没有函数名
function () {
console.log('函数执行中。。。')
}
函数表达式
将函数赋值给变量即函数表达式
let fn = function () {
console.log('fn函数执行中。。。')
}
函数表达式与普通函数的区别
函数表达式与普通函数并没有本质上的区别
1.普通函数的声明与调用没有先后顺序,推荐做法是先声明再调用
// 先声明后调用
function fun() {
console.log('fun函数执行中。。。')
}
fun()
// 先调用后声明
fun()
function fun() {
console.log('fun函数执行中。。。')
}
2.函数表达式必须要先声明再调用
//声明函数
let fn = function () {
console.log('fn函数执行中。。。')
}
// 调用函数
fn()
//先调用 后声明 这样是不可以的
fn()
let fn = function () {
console.log('fn函数执行中。。。')
}
什么是回调函数
如果将函数 A 做为参数传递给函数 B 时
我们称 函数 A 为回调函数
大白话 就是
当一个函数当作参数来传递给另一个函数的时候, 这个函数就是回调函数
回调函数的使用场景
function fun() {
console.log('fun函数执行中。。。')
}
setInterval(fun,1000)
// 此时fun就是回调函数
最简单的回调函数
let fn = function () {
console.log('fn函数执行中。。。')
}
function getFn(callback) {
console.log('getFn函数执行中。。。')
callback()
}
getFn(fn)