博客列表 >演示(变量与常量)的区别, 函数(匿名函数)的区别、箭头函数参数特征、 闭包原理与实现、 四种高阶函数的演示

演示(变量与常量)的区别, 函数(匿名函数)的区别、箭头函数参数特征、 闭包原理与实现、 四种高阶函数的演示

lus菜
lus菜原创
2021年01月06日 12:06:45540浏览

变量与常量:

  1. <script>
  2. //变量
  3. let userName; //声明
  4. console.log(userName);
  5. let itemName = "手机"; //声明时并初始化(第一次赋值)
  6. console.log(itemName);
  7. userName = "电脑"; // 更新
  8. console.log(userName);
  9. //常量
  10. const unitprice = 3699;// 声明时必须初始化
  11. unitprice = 2888;//会发生错误
  12. </script>
效果预览:

函数与匿名函数的区别:

  1. 函数都是单值返回,如果想返回多个值,将结果封装到数组或对象中 迭代器除外
  1. <script>
  2. //声明,会自动提升到顶部,动词get + 名词Name 函数命名规则
  3. function getName(name) {
  4. return "Welcome to " + name;
  5. }
  6. console.log(getName("天猫商城")); //调用
  7. function getName(name) { //重写
  8. return "欢迎光临 " + name;
  9. }
  10. //函数声明提升
  11. //console.log(sum(1,2)); 效果发生报错
  12. // 使用了匿名函数/函数表达式
  13. // let sum = function (a,b){
  14. // return a + b;
  15. // };
  16. // console.log(sum(1,2));
  17. const sum = function (a,b) { //函数可以被重写
  18. return a + b;
  19. };
  20. console.log(sum(1,2)); //匿名函数不可用重写会发生报错
  21. sum = function (a,b) {
  22. return a + b;
  23. };
  24. </script>

效果预览:

箭头函数特征:

  1. 箭头函数没有原型属性prototype,不能当构造函数用
  2. 箭头函数中的this,始终与它的上下文绑定

样式代码:

  1. <script>
  2. let sum = function (a, b) {
  3. return a + b;
  4. };
  5. //箭头函数用来简化 "匿名函数" 的声明
  6. sum = (a, b) => {
  7. return a + b;
  8. };
  9. console.log(sum(1, 2));
  10. //如果函数体只有一条语句,可不写return
  11. sum = (a, b) => a + b;
  12. console.log(sum(10, 20));
  13. //如果只有一个参数,连小括号都可以不用了
  14. let tips = str => console.log(str);
  15. tips("欢迎大家来到这里")
  16. //如果没有参数,小括号不能省略
  17. tips=() => console.log("Success");
  18. console.log(tips());
  19. </script>

效果预览:

闭包原理:

  1. 自由变量: 即不是函数参数变量也不是私有变量,存在于函数调用上下文中
  2. 闭包: 能够访问自由变量的函数,所以理论上讲,任何函数都是闭包

样式代码:

  1. <script>
  2. let num = 100;
  3. function add(a, b) { // a,b: 参数变量
  4. let t = 0; // t: 私有变量
  5. return t + a + b + num; // num: 自由变量
  6. }
  7. function a() {
  8. let n = 100;
  9. return function () { //这个返回的子函数就是闭包
  10. return n;
  11. };
  12. }
  13. console.log(a()());
  14. function f1() {
  15. let a = 1; //a 相对于f1是私有变量,但是相对于返回的匿名函数就是一个自由变量
  16. return function () {
  17. return a++;
  18. };
  19. }
  20. let f2 = f1();
  21. console.log(f2());
  22. console.log(f2());
  23. console.log(f2());
  24. </script>

效果预览:

四种高阶函数:

  1. 高阶函数: 使用函数为参数或者将函数作为返回值的函数。
  2. 回调函数:
  3. 偏函数: 简化了声明时的参数声明
  4. 柯理化: 简化了参数的调用
  5. 纯函数: 完全独立于调用上下文,返回值只能受到传入的参数影响

样式代码:

  1. <script>
  2. document.addEventListener("click", function () { //回调函数
  3. alert("Hello World~~");
  4. });
  5. let sum = function (a, b) { //偏函数: 简化了声明时的参数声明
  6. return function (c, d) {
  7. return a + b + c + d;
  8. };
  9. };
  10. let f1 = sum(1, 2);
  11. console.log(f1(3, 4));
  12. sum = function (a) { //柯理化
  13. return function (b) {
  14. return function (c) {
  15. return function (d) {
  16. return a + b + c + d;
  17. };
  18. };
  19. };
  20. };
  21. let res = sum(10)(20)(30)(40); //简化了参数的调用
  22. console.log(res);
  23. function getDate() { //不是纯函数
  24. return Date.now();
  25. }
  26. console.log(getDate());
  27. function add(a, b) { // 是纯函数
  28. console.log(a + b);
  29. }
  30. add(1, 2);
  31. </script>

效果预览:

回调和纯函数是什么:

  1. 纯函数: 纯量就是标量不是向量。纯量函数估计就是函数的值域不是向量,而是标量把完全独立于调用上下文,返回值只能受到传入的参数影响
  2. 回调: 回调函数写完之后不用,给别人用的函数,事件方法,把一个函数写到一个函数的位置,那么这是一个方法函数,圆括号里面是参数,参数里面再写一个函数这就叫回调函数
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议