【js】高阶函数是个什么?

时间:2022-02-17 06:56:56

所谓高阶函数,就是函数中可以传入另一个函数作为参数的函数。

简单一张图,方便理解全文。

【js】高阶函数是个什么?

function 高阶函数(函数){}

这是一个高阶函数,f是传入的函数作为参数。

【js】高阶函数是个什么?

其实高阶函数用的很多。其实平时也用,只是或许有些人并不知道那叫高阶函数。

js函数可以传入变量,而函数也是一个变量,自然也是可以传递的。

如:

map:一般用于操作数组集合,遍历操作用。

【js】高阶函数是个什么?

【js】高阶函数是个什么?

使用map(String)可以将数组的元素转字符串化:

但是内部对象会变成[object Object],数组会变成逗号分隔字符串,整个函数也会变成字符串。一般最好只转换基本类型元素。

【js】高阶函数是个什么?

当然也就有了map(Number),可以将字符串转数字。引用类型直接变成NaN。如果字符串不是纯数字也会变成NaN。

【js】高阶函数是个什么?

reduce:数组元素计算。

如:这是数组求和,将元素全部加起来,相当于1+2+3+4+5。

【js】高阶函数是个什么?

当然也有数组求差,相当于1-2-3-4-5。

【js】高阶函数是个什么?

filter:筛选元素用。返回数组元素的判断(boolean):

如:筛选出数组中的奇数,%2不为0的就是奇数

【js】高阶函数是个什么?

筛选掉空字符串、null、undefined:

【js】高阶函数是个什么?

数组去重:

筛选条件:当前元素位置===数组该元素的第一个位置

【js】高阶函数是个什么?

sort:数组重排序。返回同一个数组对象。根据ascii码进行排序。

x>y:从小到大

x<y:从大到小

重排序的数组还是原来的数组。

【js】高阶函数是个什么?

英文也可以排序:

【js】高阶函数是个什么?

中文也可以排序:

所以我的名字是根据ascii排序来的吗?

【js】高阶函数是个什么?