编写高质量代码——JavaScript篇

原创 2015年07月07日 22:57:14

一、避免团队合作时的js冲突
使用大写的GLOBAL作为全局变量的变量名。在不同的匿名函数中,根据功能生命一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不要直接挂在GLOBAL对象上,而是挂在此匿名函数的命名空间下。
二、JavaScript分层
JavaScript分为三层,从下往上以此是base层、common层和page层。base层的功能是给common层和page层提供接口,common层的功能是给page层提供组件。
base层可封装判断浏览器类型的方法,例如Firefox不支持document.all,可以用来判断浏览器类型。总而言之,base层的接口可以分成三块,一块用来操作DOM,一块操作事件,还有一块用来模仿其他语言提供原生JavaScript不提供的函数。
三、面向对象编程
面向过程编程:描述一个个“动作”。将程序分成“数据”和“处理函数”两部分,程序以“处理函数”为核心,如果要执行什么操作,就将“数据”传给相应的“处理函数”,返回我们需要的结果。面向过程的缺点:
(1)数据和处理函数没有直接的关联。
(2)数据和处理函数都暴露在同一作用域内。
面向对象编程:描述一个个“物件”,对象由属性和行为两部分组成。
在不影响扩展性的前提下,尽量将属性和行为设为私有。OO包括OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象的程序设计)。决定聚合和耦合成都的事OOA和OOD,OOA和OOD是工作在架构层面的。
函数在JavaScript中既可以当做普通函数使用,也可以当做类来使用。作为函数时用动词来命名,作为类时用名词来命名,类名首字母大写。
写在原型中的行为,可以被所有实例所共享,实例化的时候,并不会在实例的内存中再复制一份。而写在类的行为,实例化的时候会在每个实例里复制一份。把行为写在原型里可以减少内存消耗,没有特殊原因,尽量把行为写在原型里。写在原型中的行为一定是共有的,而且无法访问私有属性。
JavaScript中继承是要分别继承构造函数和原型中的属性和行为的。
function的用法:作为函数存在直接使用“()”进行调用,作为类的构造函数存在使用new调用。作为函数的function,其this指向的是window对象,而作为类构造函数的function,其this指向的是实例对象。要实现继承的效果,可以通过call或apply方法实现,父类.call(this, name)。
在JavaScript中,复制语句会用传值和传址两种不同的方式进行赋值。如果是数值型、布尔型、字符型等基本数据类型,在进行赋值时会将数据赋值一份;如果是数组、hash对象等复杂数据类型(数组、hash对象可包括简单类型数据),在进行赋值时会直接用内存地址赋值。让复杂数据类型也可以传值的做法一是,遍历数组或hash对象,将数组或hash对象这种复杂的数据拆分成一个个简单数据分别赋值。做法二,new SomeFunction,子类.prototype.constructor = 子类。因为子类.prototype=new 父类(),子类.prototype.constructor指向了父类,把它纠正重新指回子类。

Other Tips:
1、用hash对象传参。
2、自定义属性是个非常有用的技巧,我们不但可以用它来保存普通字符串,还可以用它保存其他类型(数组、hash对象)的数据。
3、好的维护性:代码的松耦合,高度模块化,良好的注释,代码的弹性,按照规范写代码。

提高代码性能,写出高质量js/jq代码常记

论jQuery和javascript性能的文章并不罕见。然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的jQuery和javascript代码。好的代码会带来速度的提升。快速渲染和...
  • zerlinda_c
  • zerlinda_c
  • 2015年12月16日 10:25
  • 1135

编写高质量代码——JavaScript篇

一、避免团队合作时的js冲突 使用大写的GLOBAL作为全局变量的变量名。在不同的匿名函数中,根据功能生命一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不要直接挂在GLOBAL对...
  • echoyoung46
  • echoyoung46
  • 2015年07月07日 22:57
  • 482

读书笔记-高质量JavaScript

零、导读列表本文主要讨论以下几个问题: - 如何避免JS冲突(匿名函数) - 不同脚本之间如何通信(全局变量+命名空间) - 如何设置JS程序统一入口(window.onload) - 有哪些...
  • qq_35440678
  • qq_35440678
  • 2016年11月13日 09:52
  • 169

编写高质量代码:改善JavaScript程序建议--面向对象编程

JavaScript是基于对象的弱类型语言,它是以对象为基础,以函数为模型,以原型为继承机制的开发模式。 建议1:参照Object构造体系分析prototype机制​ 对象(Object)是没有原...
  • ligang2585116
  • ligang2585116
  • 2017年05月22日 19:56
  • 1340

编写高质量代码:改善Java程序的151个建议-学习笔记(1-4章)

1.java中通用的方法和准则 2.基本类型 3.类对象及方法 4.字符串 5.数组和集合
  • birdfly12345
  • birdfly12345
  • 2017年05月06日 00:01
  • 2940

编写高质量代码-JavaScript程式的188个建议

  • 2014年12月08日 09:15
  • 87.89MB
  • 下载

编写高质量JavaScript代码的68个有效方法

  • 2017年10月25日 09:25
  • 9.73MB
  • 下载

编写高质量代码规范

规范1:
  • yuanyuanispeak
  • yuanyuanispeak
  • 2016年01月11日 11:31
  • 935

读书笔记之《编写高质量代码:改善C#程序的157个建议》

最近,在阅读书籍《编写高质量代码:改善C#程序的157个建议》,感觉写得很不错,特将其中的建议整理了一下,待以后随时查看。 现只罗列了其中的部分建议,因为书籍还没有阅读完,会慢慢的完善补充。   ...
  • tiana0
  • tiana0
  • 2013年10月05日 10:49
  • 2602

编写高质量代码改善JavaScript程序的188个建议 (成林) 高清PDF扫描版

  • 2014年07月16日 17:51
  • 87.97MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写高质量代码——JavaScript篇
举报原因:
原因补充:

(最多只允许输入30个字)