函数的理解

  • 函数可以提升代码三性:复用性 、扩展性、维护性
  • 函数可以隔离变量作用域
  • 函数可以控制代码执行,函数不调用不执行
  • 函数的封装没有绝对的对错,取决于书写代码时的心情以及对业务的理解等等条件…….
  • 所有函数不论声明还是调用,均需要知道意义、参数、返回值

    形参,实参与返回值的理解

  • 完成一件事的条件就是参数(形参、实参)

  • 形参是抽象的,实参是具体的
  • 参数为了解耦,一个函数中有多种情况,不同点就是参数,也就是解耦
  • 实参就是形参的值,想要通过内部变量进行赋值通过实参进行传递,通过形参声明变量
  • 封装函数的时候,参数宁多不少,这样可以提升其复用性,多的参数可以设置为可选参数
  • 返回值就是一个函数的执行结果
  • 如果需要将内部变量传递到外部,那么就把它设置为该函数的返回值,这样就能一个变量来接收函数的执行结果。

    回调

    (过滤一个数组,总结原生函数的意义参数返回值)
    查阅reduce、every(意义、参数、返回值)并封装

  • reduce:

    • 意义: 让数组的每一个元素都执行一次回调函数,并将上一次循环时回调函数的返回值作为下一次循环的初始值,最后将这个结果返回。
      1. - **reducer** 函数接收4个参数:
      2. - Accumulator (acc) (累计器)
      3. - Current Value (cur) (当前值)
      4. - Current Index (idx) (当前索引)
      5. - Source Array (src) (源数组)
    • 参数:
      • 语法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
      • callback:执行函数中的每一个值
        • accumulator:
        • currentValue:
        • index:
        • array: 调用reduce()的数组
      • initialValue:
    • 返回值: 函数累计处理的结果
  • every:
    • 意义:测试一个数组内的每个元素是否都能通过某个你指定的函数,通过则返回true,否则返回false ```javascript const arr = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 15];

console.log(array1.every(arr)); // expected output: true ```

  • 参数:
    • 语法:arr.every(callback(element[, index[, array]])[, thisArg])
    • callback:
      • element: 用于测试的当前值。
      • index: 用于测试的当前值的索引。
      • array: 调用 every 的当前数组。
    • thisArg: 执行 callback 时使用的 this 值。
  • 返回值:返回一个布尔值,真为true,假为false

    闭包

    递归

    连贯操作

    函数的自执行