JavaScript书写规范

JavaScript书写规范: 
1. 文件编码统一为utf-8;  
2. 书写过程, 每行代码结束必须有分号; 
3. 库引入: 看情况而定;  
4. 变量命名: 以下划线链接每个单词,类型_变量名; 
    s:表示字符串; 
    n:表示数字; 
    b:表示逻辑; 
    a:表示数组; 
    r:表示正则表达式; 
    f:表示函数;  
    o:表示以上未涉及到的其他对象; 
    变量在作用域的顶部申明。  
5.常量:全部大写,以下划线分隔  如网站的URL,域,图片目录路径,js和css用到的目录路径;  
6. 类命名: 首字母大写, 驼峰式命名. 如 Comment; 
7. 函数命名: 首字母小写驼峰式命名. 如getUserName(); 
8. 类中私有方法,以下划线+方法名标注,私有方法不能在类外被调用。  
9. 命名语义化, 尽可能利用英文单词或其缩写; 
10. 代码结构明了化, 加适量注释. 提高函数重用率; 
    1)大功能区块的功能描述(类,函数)/* 功能描述 参数描述 返回值 */  
    2)单行的注释(放在行末尾) //注释  
11. 注重与html分离, 减小reflow, 注重性能. 
12. Dom中自定义的class,以j_classname的形式 
13. 把外部JavaScript文件放在HTML底部,</body>的前面 
14. 优化循环(循环体中若有Dom操作,应该把Dom操作提到循环体外;在同一作用域内,Dom选择赋值给一局部变量。) 
15. 单引号和双引号  为了避免混乱,我们建议在HTML中使用双引号,在JavaScript中使用单引号。 
    //html  
    <img src="http://zywhunter.blog.163.com/blog/picture.gif" /> 
    //JavaScript  <script type="text/javascript"> document.write('<p>'); </script>  //一段混用的jQuery代码 
    $('h1').after('<div id="content"><h2>目录</h2><ol></ol></div>'); 
16. 使用更简单的格式来写innerscript 
    //早期的代码可能是这样的  
    <script type="text/javascript" language="javascript"> ... </script>  
    //现在不用language属性了 <script type="text/javascript"> ... </script> 
17. 总是检查数据  要检查你的方法输入的所有数据,一方面是为了安全性,另一方面也是为了可用性。用户随时随地都会输入错误的数据。这不是因为他们蠢,而是因为他们很忙,并且思考的方式跟你不同。用typeof方法来检测你的function接受的输入是否合法。  
18. 避免混入其他技术,js不直接控制css详细的设置,可控制classname  
19. 避免全局变量(类名空间App.dialog.)  全局变量和全局函数是非常糟糕的。因为在一个页面中包含的所有JavaScript都在同一个域中运行。所以如果你的代码中声明了全局变量或者全局函数的话,后面的代码中载入的脚本文件中的同名变量和函数会覆盖掉(overwrite)你的。
    //糟糕的全局变量和全局函数 
    var current = null; 
    function init(){...} 
    function change(){...} 
    function verify(){...}   
    解决办法有很多,Christian Heilmann建议的方法是:  //如果变量和函数不需要在“外面”引用,那么就可以使用一个没有名字的方法将他们全都包起来。 
    (function(){   
        var current = null;   
        function init(){...}   
        function change(){...}   
        function verify(){...} 
    })();  
    //如果变量和函数需要在“外面”引用,需要把你的变量和函数放在一个“命名空间”中  //我们这里用一个function做命名空间而不是一个var,因为在前者中声明function更简单,而且能保护隐私数据 myNameSpace = function(){   
        var current = null;   
        function init(){...} 
        function change(){...}   
        function verify(){...}    
        //所有需要在命名空间外调用的函数和属性都要写在return里面   
        return{     
            init:init,      
            //甚至你可以为函数和属性命名一个别名     
            set:change   
        } 
    }();  
20. 声明变量的话,总是用var  JavaScript中的变量可能是全局域或者局部域,用var声明的话会更加直观。  
21. 避免使用eval()方法(ajax数据请求验证)JavaScript中的eval()方法是在运行时把任何代码当作对象来计算/运行的方法。实际上由于安全性的缘故,大部分情况下都不应该用 eval(),总是有一种更“正确”的方法来完成同样的工作的。基本原则是,eval is evil,在任何时候都不要用它,除非你是一个老手,并且知道你不得不这样做。 
22. 不要偷懒省略”和{}  从技术上说,你可以忽略很多花括号和分号。  //虽然看上去很不对头,大部分浏览器都能正确解析这段代码 
if(someVariableExists)
  x = false  
//这个代码看上去更不对头了,咋眼一看似乎下面的句都被执行了 //实际上只有x=false在if中 
if(someVariableExists)    
    x = false     
    anotherFunctionCall();  
所以,要记住的原则是:
    1. 永远不要省略分号;
    2. 不要省略花括号,除非在同一行中。   
    //这样是OK的  
    if(2 + 2 === 4) return 'nicely done';    
23. 获取对象属性的时候用方括号而不是点号在JavaScript中取得某对象的属性有两种方法:    //点号标记 
    MyObject.property   
    //方括号标记 
    MyObject["property"]   如果是用点号标记取得对象的属性,属性名称是硬编码,无法在运行时更改;而用方括号的话,JavaScript会求得方括号内值然后通过计算结果来求得属性名。也就是说用方括号标记的方式,属性名称可以是硬编码的,也可以是变量或者函数返回值。 
    //这样是不行的 
    MyObject.value+i 
    //这样就没有问题 
    MyObject["value"+i]  
24. for in语句遍历一个对象中的所有条目的时候,用for in语句是非常方便的。但有时候我们不需要遍历对象中的方法,如果不需要的话,可以加上一条filter。  //加上了一个过滤器的for in语句 
for(key in object) {     
    if(object.hasOwnProperty(key) {       
        ...then do something...    
    } 
}  
25. 代码排版 缩进 tab长度为4  行长度 ,控制在可视范围内,以一个分号结束 花括号,如果是一个代码段,花括号紧跟在语句的后面 文件功能定义 base:网站常量
page制作要求:
    1、弹窗:按设计图还原即可,不用考虑弹窗的位置。  
    2、对于网页代码,一定要保持足够的精简,拷贝的无用代码一定要删除。  
    3、标签的语义化,不能滥用标签。 
    4、尽可能不用标签ID来控制样式。 
后端:js功能性修改,需要通知前端。

转载于:https://my.oschina.net/af666/blog/871720

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值