这是我参与第四届青训营笔记创作活动的第二天
如何写好JavaScript 第三节课
写好js的原则: 各司其职(HTML,CSS,JavaScript分离) 组件封装(易拓展,可重用性) 过程抽象(应用函数式编程思想,现代编程的范式 各司其职: html和css和js各司其职,html控制文本结构,css设置文本样式,布局,javaScript操纵dom元素,赋予行为特征,各个部分不应该逾越其所负责的功能,这样才能做到规矩,容易维护和查找错误原因。 应当避免不必要的由js直接操作样式 可以用class来表示状态 纯展示类交互寻求零js方案(由css伪类来实现样式转换效果) 组件封装: 进行插件抽象(将一些东西封装成插件),提高灵活性;HTML模板化,数据驱动;CSS模板化;组件抽象成一个通用模型。组件封装可以提高代码复用率,解耦合,这样更容易理解和维护。 过程抽象: 处理局部细节的方法,函数式编程思想,输入输出。例子:只执行一次的once函数抽象,为过程抽象,用高阶函数(又名函数装饰器,参数为函数,返回一个函数,形成一个闭包)来抽象。 常用高阶函数HOF:once函数,节流函数throttle,反抖动DeBounced 声明式编程相比命令式编程更具备可拓展性。现代编程存在两种范式,声明式和命令式。
不能根据代码的风格来评判一段代码的好坏,好处于一定的使用场景而言,可能是性能要求等。一段代码这样写肯定有这样写的原因,可能应用场景所导致的,不能够用自己的目光,片面的目光去评判,多站在别人的角度去评判。
分红包实现:
切西瓜法:每次分都分最大的一块,容易造成有一份特别大,其他的都偏小,比较刺激
抽牌法:生成随机序列,从序列中取