编写可维护的javascript阅读笔记

格式

变量

  • 变量命名, 采取小驼峰大小写
  • 变量使用名词, 函数前缀为动词
  • 局部变量应统一定义在函数的最上面, 而不是散落在函数的任意角落.
  • 赋初始值的定义在未赋初始值的变量的上面.
  • 我个人建议不使用单var语句, 因为无法在控制台单行调试

空行

  • 方法之间
  • 方法内, 局部变量和第一条语句之间
  • 多行和单行注释之前
  • 逻辑片段之间

引号

单和双都可以, 各有优点: 单引号适合但一个项目要统一.

其他

设置tab缩进4空格
不省略分号

注释

单行注释

// 单行注释

多行注释

/*
 * 多行注释
 */

文档注释

这篇文章比较了几种文档注释: Javascript自动化文档工具:YUI Doc, JSDoc 3, JSDuck等比较
我建议文档注释参考JSDoc的风格.

块状语言

  • 所有块状语言都需要带上{}
  • 不使用with
  • for循环内使用条件语句代替continue
  • for-in循环中, 都需要用hasOwnProperty()为循环过滤出对象的实例属性

函数

  • 函数名和左括号之间不要空格
  • 函数先声明在上
  • 对立即执行的函数, 如果将它的结果赋值, 则用括号括起来
var value = (function() {
    //函数体
}());

编程实践

使用===!==, 而不使用==!=

解耦

  • 把js从html中抽离: 不在html中写代码
  • 把js从css中抽离: 避免使用css表达式
  • 将css从js中抽离: 动态改变元素样式的最佳方式是用js改变元素的className
  • 将html从js中抽离: 把html字符串保存成html文件后者后台渲染出来的html, 使用jquery的load方法填充在元素中; 或者使用模板引擎在浏览器端动态渲染.

需要达到的, 除了在html中用标签引入css和js文件外, 使用class把css和html关联上, 使用idclass或者模板的方式把js和html关联上.

抽离

  • 事件处理器应用逻辑进行抽离
  • 将外部数据作为参数传递给函数内部, 使得函数内部不依赖外部变量, 以便编写单元测试
  • 将配置数据从代码中分离出来

浏览器检测

  1. 尽可能地使用特性检测.
  2. 如果不能使用特性检测, 退而求其次, 针对老版本的浏览器使用用户代理检测.
  3. 永远不要使用浏览器推断.

posted on 2016-08-07 10:29  袖珍汤锅  阅读(111)  评论(0编辑  收藏  举报

导航