1.代码语义化,像写一个故事一样描述代码。
空行4个空格
变量名称表面意义,不限制长度,驼峰写法
布尔值用isChange,来命名
给包名,main.utils.init /main.date.tatal (应用名/包/实现的方法),语义化
方法名 动词+名称 function getAllParams(){ }
2.对象所有权,随意更改他人的方法和类,对象,会造成不可知的错误,所有的更改,都在继承,拷贝的基础上进行。不要对原来写的方法做修改
每个实现一个类的人,对这个方法和类拥有修改的权力,其他人应该没有。
main.utils.init /main.date.tatal (应用名/包/实现的方法),语义化
减少全局的变量,所有的变量都应该定义在,包类,块中,不应该直接开放写。(方法里面可以即使销毁,减少内存的开销。而且修改的时候,可以直接追踪是那个包出现的问题)
3.减少事件复杂度,向上查询能少几次,速度会变快。特别是循环里面,变量的提取,能减少更多的读取开销。
var name = this.tatal.getDate().name; var age = this.tatal.getDate().age;
改写
var date = this.tatal.getDate() var age = date .age; var name = date.name;
对dom的操作减少事件复杂度,把所有的更新修改到上一级上面
for(var i = 0; i< 100; i++){ dom = create('div'); dom.append('<div>sds</div>'); $('main').append(dom); }
应该减少去修改dom,一次性生成一整个DOM,去填充mian,而不是填充100次dom的更新
4.少量的循环,直接写,不用循环。因为
for循环会形成一个局部的作用域,包含了对外部的变量引用指针,占用更多内存,变慢,少量的循环直接写。
5.减少耦合性
尽量减少文件和文件之间的依赖,一个功能的实现,仅仅在它自己本身修改,这样一旦删除某个功能,只需要修改一处。比如:为了修改点击事件,应该只需要把点击的事件直接删除就行。而不是在html和js和css都去修改。
1.html和js不要混淆写 , $('div').append('<div>sdd</div>')这种写法是不推荐的。html仅仅在html去实现,否则出了问题要两边调试。
2.<div style="22px">这样写也不支持,应该尽量用 更新class 去更新样式,这样所有的css调式都在css层去实现。而不是改好几个地方,也不知道是哪里出问题
6. 对象 和 array 的字面量写法
不用 new Object 和 new Array() 直接
{ name: 'wdds' , age: 1000 } 和 ['age', 'dsd', 'sjdks'] 这样写开销比较小
7. Switch 比 do while 更快,do while 比 while 更快
其他: cpu里面包含寄存器,是速度最快的存储结构。实时计算的变量值。
堆和栈都保存在 内存里面, (ram) ,堆里面保存的是 new Object() 出来的实体。引用指向的内存。
栈保存的是基本变量类型和引用的指针。栈的前后移动,栈的指针迁移,可以清除数据。
(所以 new Object()出来的对象都应该及时被销毁,不然占了太多的内存,都在堆里面。读取速度变慢,程序就会卡。
定义的全局变量都是不会及时销毁的,都在栈里面,还不被销毁,非常占内存,所以不要定义全局变量。)
bugList:
1.onclick 事件 会造成 click 内事件的闭包问题,导致内存的泄漏,如何释放这部分变量