函数的理解
- 函数可以提升代码三性:复用性 、扩展性、维护性
- 函数可以隔离变量作用域
- 函数可以控制代码执行,函数不调用不执行
- 函数的封装没有绝对的对错,取决于书写代码时的心情以及对业务的理解等等条件…….
-
形参,实参与返回值的理解
完成一件事的条件就是参数(形参、实参)
- 形参是抽象的,实参是具体的
- 参数为了解耦,一个函数中有多种情况,不同点就是参数,也就是解耦
- 实参就是形参的值,想要通过内部变量进行赋值通过实参进行传递,通过形参声明变量
- 封装函数的时候,参数宁多不少,这样可以提升其复用性,多的参数可以设置为可选参数
- 返回值就是一个函数的执行结果
如果需要将内部变量传递到外部,那么就把它设置为该函数的返回值,这样就能一个变量来接收函数的执行结果。
回调
(过滤一个数组,总结原生函数的意义参数返回值)
查阅reduce、every(意义、参数、返回值)并封装reduce:
- 意义: 让数组的每一个元素都执行一次回调函数,并将上一次循环时回调函数的返回值作为下一次循环的初始值,最后将这个结果返回。
- **reducer** 函数接收4个参数:
- Accumulator (acc) (累计器)
- Current Value (cur) (当前值)
- Current Index (idx) (当前索引)
- 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 ```