注: 下面ES6的语法
性能
性能中最重要的是可读性、正确性和可表达性,JavaScript基本上永远不会成为你的性能瓶颈。我们可以通过图像压缩、网络存取和减少回流等来优化性能。如果你看过整篇篇文章后只能记住一条,请记住这条。
|
|
无领域
尽量保持你函数的纯净。理想地,应该创建无副作用的、不使用外部数据的并返回新对象(而不是改变现有的)的函数。
原生
尽可能依赖原生的方法
强制
不要在不必要的时候使用隐形强制
循环
不要使用循环,因为他们强迫你使用可变的对象。可以依赖array.prototype
方法
如果你不能避免使用循环,或者使用array.prototype
方法对你来说是一种受虐的行为,可以使用递归
参数
忘记arguments
对象。使用其余的参数才是更好的选择,这是因为:
- 其余的参数是被命名的,所以你可以给这个函数的参数一个更好的注意
- 其余的参数是一个真正的数组,这使得它更容易使用。
|
|
Apply
忘记Apply()函数,使用扩展来代替
绑定
忘记bind()函数,这里有个更惯用的方法
|
|
高层级的函数
在不必需的时候避免使用嵌套函数
结构
避免函数的多层次调用,合理使用结构来解决问题
缓存
缓存功能测试、大数据结构和任何昂贵的操作。
变量
const
优于 let
优于 var
条件
if+return语句
优于 if...else if...else
和switch
对象迭代
避免使用for...in
把对象作为maps
虽然对象是一个合法的用例,但map是一个更好更强大的选择
柯里化
对许多开发者来说,柯里化是一个带有国外范的强大形式。合理化地使用它是非常妙的,但是请不要滥用它
可读性
不要使用一些表面看起来很巧妙的技巧来导致你代码的意思模糊不清(即不可读)
|
|
|
|
代码复用
不要抗拒去创建一些体积小,高度可组合、可重用的函数。
|
|
依赖性
减少依赖。第三方的代码是你不了解的,不要仅仅为了几个可复制的函数而加载整个第三方文件。