这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
js的编码原则
各司其职
简单说就是css,html,js自己做自己的工作。css处理页面样式,html处理页面结构,js处理页面逻辑。虽然html里也有部分标签可以控制样式如但最好不用。利用js控制样式时,尽量不要出现css语法相关的内容,而是通过改变类来实现。
作用
方便代码的复用,与后期修改维护
组件封装
可以将经常用到的组件,像轮播图等进行封装。为了提高通用性可以在组件内部再细分里面的内容然后注册,这样再我们不想要什么内容的时候可以将其方便的删去
作用
方便代码的复用
过程抽象
利用高阶函数(HOF)如防抖和节流的函数用来处理局部细节控制的一些方法。
once函数(控制函数只能执行一次)
function once(fn){
return funciton(..args){
if(fn){ //如果函数存在
const ret =fn.apply(this,args);
fn=null;//执行一次以后置空
return ret;
}
}
}
//最后once等价于fn
//实际上就是利用once对fn执行了只能执行一次的细节处理
命令式编程和声明式编程
js据有两种方式的特征,命令式注重要做什么,声明式注重得到的结果
作用
方便复用和调试
left-pad故事
主要介绍left-pad后面的故事和代码的质量和性能优化,从while循环累加,到内置repectAPI,并讲解repeact底层快速幂去优化时间复杂度,从O(n)优化到O(logn)。讲解了一下快速幕实现的原理,接着还有一些业内优化时间复杂度的方案,思路大概是通过计算循环次数,然后用+=去实现。
总结
js代码在编写式要注意到代码的可读性,可复用性,可行性。通过抽象数据、抽像过程等方法,进行组件化函数式的编程。
同时还要考虑代码的性能,综合考虑时间复杂度和空间复杂度。