上海天缘迪柯信息技术有限公司
JS
Version 1.0 --HG团队
2013年8月
编码规范
上海天缘迪柯信息技术有限公司
文件建立/修改记录
建立/修改人 序号 版本 建立或修改 日期 1 1.0 建立 李云花 2013-8-27 2 日期 邓俊杰 2013-8-30 日期 邓俊杰 2013-9-9 审核人 批准人 3 1
目录
1
概述 .............................................................................................................. 5 ? ? ? ? ? 2 3
可理解性 ............................................................................................... 5 直观性 ................................................................................................... 5 可适应性 ............................................................................................... 5 可扩展性 ............................................................................................... 5 可调试性 ............................................................................................... 5
适用范围 ...................................................................................................... 5 规范 .............................................................................................................. 5 3.1
可读性................................................................................................ 5 3.1.1 函数和方法 ................................................................................. 5 3.1.2 大段代码 ..................................................................................... 6 3.1.3 复杂的算法 ................................................................................. 6 3.1.4 Hack .............................................................................................. 6 3.1.5 代码排版 ..................................................................................... 6 3.2
变量和函数命名................................................................................ 8 3.2.1 变量名应为名词 ......................................................................... 8 3.2.2 函数名应该为动词开始 ............................................................. 8 3.2.3 变量和函数都应使用合乎逻辑的名字 ..................................... 8 3.2.4 所有变量声明都需要放到函数最顶部声明或者说是作用域开始部位声明................................................................................................ 9 3.3 3.4
变量类型透明.................................................................................... 9 松散耦合............................................................................................ 9 3.4.1 解耦HTML/JavaScript ............................................................... 9 3.4.2 解耦CSS/JavaScript ................................................................... 9 3.4.3 解耦应用程序/事件处理程序 .................................................. 10 3.5
编程实践.......................................................................................... 10
2
上海天缘迪柯信息技术有限公司
3.5.1 尊重对象的所有权 ................................................................... 10 3.5.2 避免全局量 ............................................................................... 10 3.5.3 避免与null进行比较 ............................................................... 12 3.5.4 使用常量 ................................................................................... 12 3.6
性能.................................................................................................. 12 3.6.1 避免全局查找 ........................................................................... 12 3.6.2 定时器 ....................................................................................... 12 3.6.3 字符串连接 ............................................................................... 13 3.6.4 避免with语句 .......................................................................... 14 3.6.5 类型转换 ................................................................................... 14 3.6.6 最小化语句数 ........................................................................... 15 3.6.7 优化DOM交互 ........................................................................ 15 3.6.8 书写最优代码 ........................................................................... 19 3.6.9 内存管理 ................................................................................... 22 3.6.10 性能的其它注意事项 ............................................................. 26 3.7
部署.................................................................................................. 26 3.7.1 JavaScript引用: ...................................................................... 27 3.8
错误.................................................................................................. 27 3.8.1 每条语句末尾须加分号 ........................................................... 27 3.8.2 使用+号时需谨慎 ..................................................................... 27 3.8.3 使用return语句需要注意 ....................................................... 27 3.8.4 ==和===的区别 ......................................................................... 28 3.8.5 不要使用生偏语法 ................................................................... 29 3.8.6 函数返回统一类型 ................................................................... 29 3.8.7 总是检查数据类型 ................................................................... 29 3.8.8 何时用单引号,何时用双引号 ............................................... 29
4
附录 ............................................................................................................ 30 4.1 JS兼容性问题 .................................................................................... 30
4.1.1 在JS中定义各种对象变量名时,尽量使用id,避免使用name
3