博客列表 >变量|常量-函数|匿名函数|箭头函数-闭包-高阶函数

变量|常量-函数|匿名函数|箭头函数-闭包-高阶函数

葡萄枝子
葡萄枝子原创
2021年01月05日 00:26:22599浏览

变量|常量-函数|匿名函数|箭头函数-闭包-高阶函数

  1. 实例演示变量与常量的区别;
  2. 函数与匿名函数的区别
  3. 箭头函数的参数特征
  4. 闭包原理与实现并演示它
  5. 四种高阶函数,全部实例演示,并理解回调和纯函数是什么,写出你的答案

1. 实例演示变量与常量的区别

  • 变量:可以先声明,后赋值,再更新;
  • 常量:必须在声明时赋值,后不能更新和删除。
  • 变量和常量都不可重复声明(var 声明除外)
  1. // 变量
  2. let a;
  3. // 未初始化变量,输出 undefined
  4. console.log(a);
  5. // 变量赋值
  6. a = 0;
  7. // 输出 0
  8. console.log(a);
  9. // 变量更新
  10. a = 1;
  11. // 输出 1
  12. console.log(a);
  13. // 初始化时赋值
  14. let b = 2;
  15. // 输出 2
  16. console.log(b);
  17. // 常量
  18. const c = 3;
  19. // 输出 3
  20. console.log(c);

变量与常量的区别

2. 函数与匿名函数的区别

  • 函数:有函数名,函数可以重写;
  • 匿名函数:没有函数名的函数,可以赋值给一个常量,防止重写,更新。
  1. // 函数
  2. function sum1(a, b) {
  3. return a + b;
  4. }
  5. // 函数输出 1 + 2 输出 3
  6. console.log(sum1(1, 2));
  7. // 匿名函数
  8. const sum2 = function(a, b) {
  9. return a + b;
  10. }
  11. // 匿名函数 2 + 3 输出 5
  12. console.log(sum2(2, 3));

函数与匿名函数的区别

3. 箭头函数的参数特征

  • 箭头函数简化匿名函数的声明
  • 箭头函数参数特征:
    • 没有参数时,参数 () 不能省略
    • 只有一个参数时,参数 () 可以省略
    • 两个或多个参数,参数 () 不能省
    • 多条语句时,函数体 {} 不能省
  1. // 没有参数时,参数 () 不能省略
  2. let sum = () => true;
  3. // 返回 true
  4. console.log(sum());
  5. // 只有一个参数时,参数 () 可以省略
  6. sum = (a) => a;
  7. sum = a => a;
  8. // 返回 0
  9. console.log(sum(0));
  10. // 两个或多个参数,参数 () 不能省
  11. sum = (a, b) => a + b;
  12. // 返回 3;
  13. console.log(sum(1, 2));
  14. // 多条语句时,函数体 {} 不能省
  15. sum = (a, b) => {
  16. let c = a + b;
  17. return c;
  18. }
  19. // 返回 5
  20. console.log(sum(2, 3));

箭头函数的参数特征

4. 闭包原理与实现并演示它

  • 闭包:能访问自由变量的函数
  • 自由变量:存在函数调用的上下文中,不是函数自身的参数变量,也不是函数内部的私有变量
  1. let x = 1;
  2. // 函数 y 内访问自由变量 x,函数 y 是闭包函数
  3. let y = () => x;
  4. // 返回 1
  5. console.log(y());
  6. // 函数 s 内访问自由变量 x ,函数 s 是闭包函数
  7. let s = () => {
  8. // 变量 y 对函数 s 是私有变量
  9. let y = x + 1;
  10. // 变量 y 对函数 z 是自由变量,函数 z 也是闭包函数
  11. let z = () => x + y;
  12. return z;
  13. }
  14. // 返回 3
  15. console.log(s()());

闭包原理

5. 四种高阶函数,全部实例演示,并理解回调和纯函数是什么,写出你的答案

高阶函数: 使用函数为参数或者将函数做为返回值的函数

  • 回调函数:使用函数作为参数传递
  1. // 回调函数
  2. let fa = a => a();
  3. let foo = () => 'foo';
  4. // 把函数 foo 作为参数传递给函数 fa,foo 是回调函数
  5. console.log(fa(foo));
  • 偏函数:简化声明
  1. // 偏函数:简化声明
  2. fa = (a, b) => {
  3. return c => a + b + c;
  4. }
  5. // 返回 6
  6. console.log(fa(1, 2)(3));
  • 柯里化:简化调用参数
  1. // 柯里化:简化调用参数
  2. fa = a => b => c => a + b + c;
  3. // 返回 9
  4. console.log(fa(2)(3)(4));
  • 纯函数:返回值只能受到传入的参数影响
  1. // 纯函数
  2. fa = a => a;
  3. console.log(fa(true));

高阶函数

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议