接受一个函数作为参数,或者接受一个函数作为返回值。这样的结构被称为“高阶函数”。JavaScript参数值类型的参数functionplusFive(number){returnnumber+5;};plusFive(3);//8个回调函数类型参数可以作为参数传递给JavaScript中的函数:constisEven=(n)=>{returnn%2==0;}constisEven=(n)=>{returnn%2==0;}让printMsg=(evenFunc,num)=>{constisNumEven=evenFunc(num);console.log(`Thenumber${num}isanevennumber:${isNumEven}.`)}//传入isEven作为回调函数printMsg(isEven,4);//打印:数字4是偶数:True。高阶函数(Higher-OrderFunctions)当函数作为参数传递给函数,或作为函数返回时,这种结构称为高阶函数。.reduce()reduce函数迭代一个数组并返回一个累加值。constarrayOfNumbers=[1,2,3,4];constsum=arrayOfNumbers.reduce((accumulator,currentValue)=>{returnaccumulator+currentValue;});控制台日志(总和);//10.forEach()forEach函数传入一个函数,按顺序遍历数组的每个元素。常量数字=[28,77,45,99,27];numbers.forEach(number=>{console.log(number);});.filter()过滤函数按照数组元素的顺序遍历每个元素,回调函数需要返回一个布尔值,函数最终的返回值是一个数组。constrandomNumbers=[4,11,42,14,39];constfilteredArray=randomNumbers.filter(n=>{returnn>5;});.map()map函数按照数组元素的顺序遍历每个元素,根据回调函数的逻辑返回一个新的数组。constfinalParticipants=['Taylor','Donald','Don','Natasha','Bobby'];//在每个最终参与者之后添加字符串constannouncements=finalParticipants.map(member=>{returnmember+'joinedthecontest.';})console.log(announcements);
