JavaScript——回调函数

这是我参与更文挑战的第11天,活动详情查看: 更文挑战

回调函数

什么是回调函数呢?

回调函数有什么用呢?

让我们一起来探索吧。

所谓回调函数是指,一个函数A作为参数传递给另个一个函数B,然后函数B在函数体内调用
函数A,此时我们称函数A为回调函数。匿名函数常作为函数的参数传递,实现回调函数。
复制代码

来看一个具体例子

<script>
       function cal(num1,num2,fn){
           return fn(num1,num2);//回调函数就是让函数内的部分功能由调用者决定。
       }
       console.log(cal(1,2,function(a,b){
           return a + b;    //返回a+b的值
       }));
       console.log(cal(1,2,function(a,b){
           return a * b;    //返回a*b的值
       }));
    </script>
复制代码

数组利用回调函数

JavaScript为数组提供了很多利用回调函数实现具体功能的方法。

find()
返回通过测试的数组的第一个元素的值。
数组中的每个元素都调用一次函数执行。
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined。

<script>
  var arr = [1,2,3,4,5];
  function greater(num){
        return num>3;
  }
  //find返回第一个符合条件的结果。
  console.log(arr.find(greater));//结果为4
</script>

复制代码
every()
检测数组中的所有元素是否满足条件,满足返回true,否则返回false
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
 <script>
  var arr = [1,2,3,4,5];
  function greater(num){
        return num>3;
  }
  //every检测所有元素是否满足条件,一个不满足即返回false,全部满足返回true
  console.log(arr.every(greater));//结果为false
</script>
复制代码
some()
检测数组中所有元素,是否有元素满足条件,有则返回true,否则返回false
复制代码
forEach()
<script>
  var arr = [1,2,3,4,5];
  var sum = 0;
  function add(num){
        sum = sum + num;
  }
  //forEach对数组每个元素都执行一次函数
  arr.forEach(add)
  console.log(sum);//结果为15
</script>
复制代码
map()
<script>
      var arr = [1,2,3,4,5];
      
      function fac(num){
           return num * num;
      }
      //返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
      console.log(arr.map(fac));//结果为[1, 4, 9, 16, 25]
    </script>
复制代码
reduce()
接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
 <script>
      var arr = [1,2,3,4,5];
      function sum(sumAll,num){//sumAll即为累加器
           return sumAll+num;
      }
      console.log(arr.reduce(sum));//结果为15
    </script>
复制代码
reduceRight()
reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享