所谓高阶函数,就是函数中可以传入另一个函数作为参数的函数。
简单一张图,方便理解全文。
function 高阶函数(函数){}
这是一个高阶函数,f是传入的函数作为参数。
其实高阶函数用的很多。其实平时也用,只是或许有些人并不知道那叫高阶函数。
js函数可以传入变量,而函数也是一个变量,自然也是可以传递的。
如:
map:一般用于操作数组集合,遍历操作用。
使用map(String)可以将数组的元素转字符串化:
但是内部对象会变成[object Object],数组会变成逗号分隔字符串,整个函数也会变成字符串。一般最好只转换基本类型元素。
当然也就有了map(Number),可以将字符串转数字。引用类型直接变成NaN。如果字符串不是纯数字也会变成NaN。
reduce:数组元素计算。
如:这是数组求和,将元素全部加起来,相当于1+2+3+4+5。
当然也有数组求差,相当于1-2-3-4-5。
filter:筛选元素用。返回数组元素的判断(boolean):
如:筛选出数组中的奇数,%2不为0的就是奇数
筛选掉空字符串、null、undefined:
数组去重:
筛选条件:当前元素位置===数组该元素的第一个位置
sort:数组重排序。返回同一个数组对象。根据ascii码进行排序。
x>y:从小到大
x<y:从大到小
重排序的数组还是原来的数组。
英文也可以排序:
中文也可以排序:
所以我的名字是根据ascii排序来的吗?