1、健壮性
抗击风险和bug的能力、
- 目的:
-
- 避免和程序无关的因素,导致代码报错
- 快速给出问题反馈
- 不至于因为非必要性bug,导致程序执行中断
- 保障健壮性
-
- 参数做好默认值,做好检测
- 程序做好意外情况处理
2、可读性
- 代码结构清晰
- 他人能看懂你的意思
- 优化丑陋的结构
- 遵循匿名规范
- 写好注释
编程规范
1、面向过程
先做这个,再做那个,然后做什么
2、面向对象
把功能组织成对象,然后相关操作作为对象的方法
3、函数式编程
把功能分解为一系列独立的函数,通过函数之间相互调用来完成功能
4、为什么要函数式编程
- 提高复用性和可扩展性
- 设计业务逻辑的代码还是面向对象
- tree-shaking
-
- 通过文档流的方法引入判断是否使用某个方法
5、函数式编程要求
- 保证纯函数:一个函数的返回结构只依赖于他的参数,同样的输入必定由同样的输出
- 减少函数副作用:函数会影响外部的数据,如果是全局变量
6、compose函数
方便我们连续执行方法,把自己调用传值的过程封装起来,我们只需要告诉compose函数我们执行哪些方法,他会自动执行
实际开发过程借助js原生api
使用promise来组成链式调用,和面向对象的链式调用是由区别的
7、高阶函数
原生的高阶函数
- forEach和Map
- reduce
- filter
注意点
- 保持纯函数减少函数副作用
- 调用选择call还是apply
8、函数柯里化
把接受多个参数的函数变成接收单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数技术。
柯里化意义:
- 不方便传入参数
- 方法多次调用参数固定