前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《JavaScript 高级程序设计》阅读笔记 1:最佳实践

《JavaScript 高级程序设计》阅读笔记 1:最佳实践

作者头像
Chor
发布2019-11-07 18:16:16
4520
发布2019-11-07 18:16:16
举报
文章被收录于专栏:前端之旅

可维护性

可维护性包括:可理解性、直观性、可适应性、可扩展性和可调试性

代码约定:

  • 可读性(缩进、注释);
  • 变量和函数命名(有意义的命名);
  • 变量类型透明(var a =null var a = iSpeed

松散耦合:

  • HTML 或者 CSS 与 JavaScript 的解耦(如 CSS 仍然保留样式信息,通过改变类名来改变样式);
  • 事件监听器和应用逻辑的解耦(监听器只发挥监听作用,而将应用逻辑独立成可以复用的函数)

编程实践:

  • 尊重对象所有权(尽量不要改动原生对象);
  • 尽量避免创建全局变量和函数;
  • 避免与 null 比较
  • 使用常量

性能优化

  • 优先使用局部变量。根据作用域链查找的原理,访问全局变量速度会较慢
  • 避免 with 语句。会延长作用域链长度
  • 避免多次的属性查找。属性查找涉及原型链的追溯,花费时间长
  • 优化循环:减值迭代、简化终止条件、简化循环体、使用 do...while...、展开循环
  • 使用数组字面量和对象字面量
  • 最小化现场更新。对于已经加载出来的 dom 的直接操作(现场更新)会影响性能,可以考虑在新建的 fragment 文档片段中进行修改,之后只进行一次现场更新。
  • innnerHTML 比普通的创建 dom 节点的方法更快
  • 同胞节点有相同的事件时利用事件委托冒泡给父节点,父节点的事件监听器里结合 switch 进行 event.target 判断
  • 访问 HTMLCollection 的属性或者方法时,都是在文档上进行查询,这个过程会有性能开销,应该最小化访问 HTMLCollection 的次数。例如可以将 for 循环的终止条件判断保存在一个值里,而不是每次都重新计算一次。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 可维护性
  • 性能优化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档