Blogger Information
Blog 70
fans 1
comment 0
visits 52907
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
变量|常量-函数|匿名函数|箭头函数-闭包-高阶函数
葡萄枝子
Original
600 people have browsed it

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

  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));

高阶函数

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:闭包理解了, js原理就理解了一半,这也是面试最常问到的问题
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments