# js精进之路 **Repository Path**: stringify/jsjingjin ## Basic Information - **Project Name**: js精进之路 - **Description**: 积累优雅写法 / 最佳实践 / 高级技巧 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-06-17 - **Last Updated**: 2022-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - 1. [如何做到零if](Effective-1.md) - 2. [强类型思维](Effective-2.md) - 3. [真正的类型判断](Effective-3.md) - 4. [写一个事件总线](./js/eventBus.js) - 5. [扩展数组方法](Effective-7.md) - 6. [实现es6的 map 和 fifter 等方法](Effective-6.md) - 7. [数组那些奇淫技巧](Effective-6.md) - 8. [为什么es6新增数组api都是返回新数组?]() - 9. [惰性函数,和scheme对比]() - 10. 坑,如何在update生命周期中使用防抖?() - 11. 手动实现一个document.querySelectorAll - 12. [时间切片加强版](./js/time.js) - 先设计,后实现 - 删得多 ,写得少 - 多看优秀开源框架源码 - 具名化`if` / `常量` - **函数功能保持单一 ,一个函数做一件事. 尽量传参 ,避免写死变量在函数内部** - 初始化时确定变量类型,后续也不改变变量类型。一个函数的返回类型要一致。 - 函数参数不要超过2个 ,避免过于复杂 ,过多后续参数可使用对象。 - 业务代码和通用代码分离 - 全部使用const (ie 11也支持) ,强迫使用函数式编程风格