javascript 最佳实践

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="width: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 内事件的闭包问题,导致内存的泄漏,如何释放这部分变量

猜你喜欢

转载自www.cnblogs.com/chenyi4/p/12089914.html