JavaScrip学习——规范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScrip学习——规范相关的知识,希望对你有一定的参考价值。

参考:

  • 汤姆大叔的博客 : http://www.cnblogs.com/TomXu/archive/2011/12/28/2286877.html  
  •  阮一峰           :http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

JavaScript规范

  1. 为了防止命名冲突尽量少用全局变量
    function sum(x, y) {
       // 不推荐写法: 隐式全局变量,即使想要定义成全局也不要使用这种写法,而应该在全局环境中使用var定义
       result = x + y;
       return result;
    }

     

    function foo() {
       // a是局部变量但b是全局
       var a = b = 0;
    }
  2. 尽量将函数中的变量声明提到函数顶部
    function func() {
       var a = 1,
           b = 2,
           sum = a + b,
           myobject = {},
           i,
           j;
       // function body...
    }
  3. 遍历数组时预先取得数组长度(防止每次循环都要取长度)
    // 次佳的循环
    for (var i = 0; i < myarray.length; i++) {
       // 使用myarray[i]做点什么
    }
    for (var i = 0, max = myarray.length; i < max; i++) {
       // 使用myarray[i]做点什么
    }
  4. 尽量不要扩展js内置的构造函数原型(Object(), Array(), 或Function())
    if (typeof Object.protoype.myMethod !== "function") {
       Object.protoype.myMethod = function () {
          // 如果必要...
       };
    }
  5. 不使用eval()、 with、 for in
  6. 不要给setInterval(), setTimeout()和Function()构造函数传递字符串(等同于使用eval())
    // 反面示例
    setTimeout("myFunc()", 1000);
    setTimeout("myFunc(1, 2, 3)", 1000);
    
    // 更好的
    setTimeout(myFunc, 1000);
    setTimeout(function () {
       myFunc(1, 2, 3);
    }, 1000);
  7. 使用Number()而非parseInt(),使用parseInt()时带上基数
    var month = "06",
        year = "09";
    month = parseInt(month, 10);
    year = parseInt(year, 10);
  8. 使用统一的缩进风格
  9. 尽量不要省略{}
  10. 构造函数首字母大写
  11. 合理使用注释
  12. 使用立即执行(不污染全局、防止私有变量被外部修改)
      var module1 = (function(){
        var _count = 0;
        var m1 = function(){
          //...
        };
        var m2 = function(){
          //...
        };
        return {
          m1 : m1,
          m2 : m2
        };
      })();
  13. //放大模式,用于扩展、继承
    var module1 = (function (mod){
        mod.m3 = function () {
          //...
        };
        return mod;
      })(module1);
     var module1 = ( function (mod){
        //宽放大模式,防止加载到空对象出错
        return mod;
      })(window.module1 || {});

     

 

以上是关于JavaScrip学习——规范的主要内容,如果未能解决你的问题,请参考以下文章

19 01 11 javascript ?????????????????????(???????????????) ??????????????????????????????(代码片段

php Yoast SEO规范输出的代码片段

php Yoast SEO规范输出的代码片段

javascrip jquery 学习随笔

基于散列片段的安全性究竟是如何工作的?

React学习笔记