这是我参与「第四届青训营 」笔记创作活动的第4天。 本次笔记的内容是Javascript相关。
本次课的讲授者为久仰大名的前端大佬月影。青训营的课程面向有基础的同学们,显然不会再教最入门的语法知识,本次课着重讲js的方法论。
一、什么才是好的JS代码
写出好的JS代码,要遵循三大原则:各司其职,组件封装,过程抽象。
1.1 各司其职
所谓各司其职,即让HTML、CSS和JavaScript职能分离。在可能的情况下,程序员应当尽量避免由JS直接操作样式。利用一些小技巧,通过class可以表示状态。对于纯展示类交互,不妨寻求零JS解决方案。
1.2 组件封装
组件是指Web页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSS)的单元。好的组件具备封装性、正确性、扩展性、复用性。HTML构成结构,CSS构成表现,JS构成行为,而组件封装的基本方法,就是基于结构设计、展现效果、行为设计展开思考,通过插件化、模板化、抽象化进行重构。
1.3 过程抽象
过程抽象用于处理局部细节控制的一些方法,是函数式编程思想的基础应用。
高阶函数(HOF)是过程抽象思想的体现之一。例如,Once函数就是为了能够让“只执行一次“的需求覆盖不同的事件处理而剥离出来的。高阶函数以函数为参数,以函数为返回值,常用作函数装饰器,常见的高阶函数有Once,Throttle,Debounce,Consumer/2,Iterative等。
编程范式也是过程抽象思想的成果。JS的代码可以以命令式和声明式的不同风格书写。
二、如何写好的代码
编写代码时,风格、效率、约定、使用场景、设计都是值得关注的方面。
在JS代码的编写中,考虑不同的侧重,对同一个问题就会给出不同的解决方案,用到不同的技术和思想。
即使是JS代码,算法的正确性和验证、算法的效率和优化依然是值得重视并研究的要点。