18 个JS优化技巧
这 18 个JS优化技巧,可以解决 90% 的屎山代码!!!
1、使用箭头函数简化函数定义
2、使用解构赋值简化变量声明
3、使用模板字面量进行字符串拼接
4、使用展开运算符进行数组和对象操作
5、使用数组的高阶方法简化循环和数据操作
6、使用条件运算符简化条件判断
7、使用对象解构和默认参数简化函数参数
8、使用函数式编程概念如纯函数和函数组合
9、使用对象字面量简化对象的创建和定义
10、使用适当的命名和注释来提高代码可读性
11、优雅的写条件判断代码
简单的条件判断逻辑用if else 或者 三元运算符, 一眼看过去还能知道说的啥,但是大量的if else和叠加在一起的三元运算符就是接盘侠的噩梦~~~
给大家上一个三元运算符叠加的案例,我是真实在项目中遇到过,cpu直接干爆~~~
大概是这样的,具体的项目代码不好放在这里,小伙伴们意会就行。复杂逻辑推荐使用对象Map写法,符合人脑的逻辑,可读性高,看着舒服~~~
11.1 普通的if else
11.2 三元运算符
11.3 多个if else
11.4 switch case
11.5 对象写法
11.6 Map写法
12、封装条件语句
同上,if里的条件越多越不利于接盘侠的维护,不利于人脑的理解,一眼看过去又是一堆逻辑。
多个逻辑应该化零为整:
13、函数应该只做一件事
函数式写法推崇柯里化, 一个函数一个功能,可拆分可组装
再来一个栗子函数,要做的事情如下:
·遍历clients数组
·遍历过程中,通过lookup函数得到一个新的对象clientRecord
·判断clientRecord对象中isActive函数返回的是不是true,
·isActive函数返回true,执行email函数并把当前成员带过去
上面不好的栗子一眼看过去是不是感觉一堆代码在那,一时半会甚至不想去看了。好的栗子,是不是逻辑很清晰,易读。
·巧用filter函数,把filter的回调单开一个函数进行条件处理
·返回符合条件的数据符合条件的数据再巧用forEach,执行email函数
14、Object.assign给默认对象赋默认值
15、函数参数两个以下最好
说一千道一万,就是为了优雅,就是为了可读性好。
16、使用解释性的变量
省流,用了扩展运算符,为了可读性(saveCityZipCode(city, zipCode)可读性很好,知道参数是干嘛的)
想对类中的属性进行更多自定义取/增/改的操作时,使用set/get
17、让对象拥有私有成员-通过闭包来实现
闭包天生就是做私有化的。
第一个示例
优点:
·通过原型链共享方法,节省了内存空间。所有实例对象共享同一个 getName 方法,而不是每个实例对象都创建一个独立的方法。
缺点:
·在构造函数中无法直接定义私有属性或方法,所有属性和方法都会被暴露在原型链上。
第二个示例
优点:
·可以在构造函数内部定义私有属性和方法,不会暴露在对象的原型链上,提供了更好的封装性。
缺点:
·每次创建实例对象时,都会创建一个独立的方法,每个实例对象都有自己的 getName 方法,占用更多的内存空间。
18、使用方法链
链式写法也是代码优雅之道的重头戏。
ps:发明这个的程序员肯定是后端出身的,这种写法在PHP的CI框架中见过。
