<第二天学习>高阶函数

本文探讨了JavaScript中的高阶函数概念,包括回调函数、偏函数、柯里化和纯函数的用法。示例展示了如何使用函数作为参数、返回值以及箭头函数的简洁形式。还提到了立即执行函数的执行方式,以及如何防止变量污染全局作用域。
摘要由CSDN通过智能技术生成
高阶函数

使用函数为参数或者将函数做为返回的函数

function demo(f) {
console.log(f);
return function (){
return "abc" ;
};
}
函数做为参数,这就是回调函数
let a = demo(function ( ){ });
console.log(a);
console.log(a());
//输出 abc	
回调函数
    document.addEventListener("click", function () {
      alert("大家好");
    });

返回去向是 document 。

偏函数

是指固定部分已知参数,同时返回一个接受剩余参数的函数。

let sum = function (a,b){
      return function (c,d) {
          return a + b +c + d;
          };
};
let f1 = sum(1,2);
console.log(typeof f1); // 输出:function  (f1是一个函数)
console.log(f1(3,4)); //输出10  (1+2+3+4)
柯里化

是把接受多个 参数 的 函数 变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

sum = function (a){
  return function (b){
   return function (c){
    return function (d){
      return a + b +c + d;
          };
       };
    };
};
纯函数

在函数内部没有应用外部数据的函数

let a = 100;
function add(b,c){
return b+c;
}
console.log(add(1,2));
// c来自函数外部,不是我自己的
// return a + b +c;
// 去掉c就是纯函数,此时函数的所有参数都必须是通过调用者传入的
箭头函数
//  原先
      let sum = function (a, b) {
        return a + b;
      };
//  匿名函数,可以使用箭头函数来简化它
       sum = (a, b) => {
        return a + b;
      };
      console.log(sum(1, 4));

//  如果箭头函数的代码体只有一行语句,可以删除大括号,自带return功能
      sum = (a, b) => a + b;
      
//  如果只有一个参数,连参数列表的圆括号都可以删除
let tips = (name)  => console.log("欢迎:" + name);
// ()可加可不加 方便以后查看 name是参数 不是变量
tips("猴子们");
 //   如果函数中药使用到this,就不要使用箭头函数,不能当构造函数用
立即执行函数
//   普通函数分两步:声明和调用
//   声明
   function sum(a,b){
   console.log(a + b);
//   调用
sum(1,2);
//   立即执行函数,声明合二为一,声明后直接执行
     (function sum(a, b) {
        console.log(a + b);
      })(1, 2);
//   分两个括号()()使用,第一个括号放置声明,而第二个括号放置调用的参数即可,

另外

(function ()
 {if (true) {
 //    一互将代码块用一个立即执行函数套住,那么内部声明的变量b就不断泄露到全局中
 var b = 100;
 }
})() ;
console.log(b);
// 输出 b is not defined (b在全局中找不到)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值