zoukankan      html  css  js  c++  java
  • 如何编写高质量的Javascript代码

    1、避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好。  
    a,使用命名空间
    b,使用闭包
    c,在函数内部使用var声明

    2、编写可维护的代码
    a.可读性
    b.连续性
    c.预见性
    d.看起来是一个人写的
    e.有文档

    3、不要扩展内建的原型
      扩展原型的构造函数,可以提供一些很强大的功能,但是有时候他太强大了。
      有时候你会去扩展Object(),Array(),Fucntion()的原型方法,这样会导致可维护性的问题,因为这会让你的代码的移植性变差。其他的开发人员使用你的代码的时候,可能只需要原生的方法,并不需要额外的功能。
      另外,你添加进去的方法,如果在循环的时候没有使用hasOwnProperty方法就会被遍历出来,这会让人很迷惑。
      所以,最好还是不要扩展基本的对象。除非是下面的情况:
    a.你确定在将来根据ECMAScript规范,浏览器会添加相应的原型方法,那么是可以的,你只不过是提前实现了这个功能。
    b.你确定的你要实现的方法不存在–或许有时候在代码的其他的地方实现了,或者有的浏览器支持,这都是不行的。
    c.有非常清晰的文档,并且与团队成员沟通过

    4、避免隐藏的类型转换
      Javascript在你比较两个变量的时候会进行类型的转换,这就是为什么 false == 0或者”" == 0会返回true。
      为了避免这种隐藏的类型转换带来的迷惑,最好使用===或者!==操作符来比较:

    5、避免使用eval()
      如果在你的代码中使用eval(),那么要记住”eval() is evil”。这个方法会将传入的字符串当做js代码来执行。如果代码是在运行前就确定的,那么没有必要使用eval()。如果代码是在运行时动态确定的,那么也有其他更安全的办法。例如使用方括号形式访问元素的属性:
    // antipattern
    var property = "name";
    alert(eval("obj." + property));

    // preferred
    var property = "name";
    alert(obj[property]);
      使用eval()还有安全问题,比如运行网络上的一段代码,而这段代码又被别人篡改了。在处理Ajax请求返回的JSON数据的时候,最好还是使用浏览器内建的处理方法,如果对于低端的浏览器不支持的,可以从JSON.org上下载对应的处理库。

    6、使用parseInt()转换处理数字
      使用parseInt()你可以将字符串转为数字。这个方法支持第二个表示进制的参数,常常被忽略。问题常常在处理一段以0开始的字符串的时候。在ECMAS3标准中,以0开始表示八进制,但是在ES5中又改了,所以为了避免麻烦,最好还是标明第二个参数。

    7、编码规范
      编码的时候遵循一定的规范,可以让代码增强可移植性,并且更加便于阅读和理解。加入团队的新人,在阅读了代码规范之后,可以更加快速的溶入团队,并理解其他人员开发的代码。

    8、缩进
      代码如果没有缩进,那基本上没法阅读了。比这更糟的是不规范的缩进,看着好像缩进了,但是乱七八糟摸不着头脑。所以缩进的使用必须规范。团队遵循统一的规范

    9、大括号
      应该使用大括号,尤其在那些可用可不用的地方,如果你的if语句或者for循环只有一句话,那么大括号不是必须的,但是这种时候最好用大括号。这可以让代码保持一致,并且便于升级。

    10、命名规范
      可以提高代码移植性和可维护性的一个方面是命名规范。也就是说,在取变量名的时候总是采取一贯的做法。

    11、写注释
      必须给代码写注释,就算它看起来不会被别人接手。有时候,研究完一个问题,然后你看着代码觉得那是显而易见的,但是过一两周之后回头再看,你也会摸不着头脑的。
  • 相关阅读:
    正则表达式 ^
    jQuery的加法运算,val()获取的结果相加变成了字符串连接。
    mssql 取数据指定条数(例:100-200条的数据)
    css样式大全(整理版)
    50个技巧提高你的PHP网站程序执行效率
    ASP版_阿里大于短信API Demo
    FusionCharts的使用方法(超详细)
    FusionCharts参数说明 (中文)
    web服务器选择Apache还是Nginx
    反向代理服务器的工作原理
  • 原文地址:https://www.cnblogs.com/zlj123/p/6062997.html
Copyright © 2011-2022 走看看