美文网首页
JavaScript规范

JavaScript规范

作者: 椰果粒 | 来源:发表于2019-03-28 14:26 被阅读0次

    原则

    • as short as possible(如无必要,勿增注释):尽量保持代码本身的清晰性可读性
    • as long as necessary(如有必要,尽量详细):合理的注释、空行排版等,可以让代码更易阅读、更具美感。

    1. JavaScript命名规范

    • 变量使用驼峰命名方式(Camel)

      • var userName = {};
    • 私有属性、变量和方法都以_下划线命名

      • var _privateMethod = {};
    • 常量全部使用大写字母,单词间下划线分割的方式命名

      • var PI_PI = 3.14;
    • 函数名使用驼峰命名

    • 函数参数使用驼峰命名

      function formateString(oldString) {
           
      }
      
    • 使用帕斯卡命名法(Pascal)

    • 类的属性和方法,使用驼峰命名法

      function OldPerson(oldName, newName){
         this.oldName = oldName;
         this.newName = newName;  
      }
      
    • 枚举变量使用帕斯卡命名法

    • 枚举的属性,全部使用大写字母,单词间下划线分割的命名法

    • 由多个单词组成的缩写词,在命名中,根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致。

      function XMLParser() {}
      function insertHTML(element, html) {}
      var httpRequest = new HTTPRequest();
      

    命名的词法

    • 类名,使用名词
      • var name = "";
    • 函数名,使用动宾结构
      • function getName(){}
    • boolean类型的变量,使用is或者has开头。
      var isReady = false;
      var hasApple = true;
      
    • Promise对象用动宾短语的进行时表达
      var loadingData = ajax.get('url');
      loadingData.then(callback);
      

    接口命名规范

    • 可读性强
    • 尽量不与 jQuery 社区已有的习惯冲突
    • 尽量写全。不用缩写,除非是下面列表中约定的;(变量以表达清楚为目标,uglify 会完成压缩体积工作)
    1. 排版缩进采用统一的缩进方式排版代码。缩进为2个空格。
    If(condition1 || condition2) {
      action1;
    } else if (condition3 && condition4) {
      action2;
    } else if (condition5
            && condition6
            && condition7
            && condition8) {
      action2;
    } else {
      default action;
    }
    
    1. 关键词、条件括弧后面使用空格;运算操作符号两侧使用空格;语句分割符‘,’后面使用空格;
    var name[空格]=[空格]value;
      if[空格](a,[空格]b) {
    }
    
    1. 左大括号"{"可以居行尾,右大括号"}"单独占一行,居行首
    if (a && b) {
    }
    
    1. 句末必须使用分好结尾;
    var fn = function () {
    };//这里没有分号的话,脚本解析器会报错!!!
    (function () {
        alert(1);
    })();
    
    1. if、while、for、do语句的执行体总是用"{"和"}"括起来

    总是使用 var 来声明变量。
    如不指定 var,变量将被隐式地声明为全局变量,这将对变量难以控制。
    如果没有声明,变量处于什么定义域就变得不清(可以是在 Document 或 Window 中,也可以很容易地进入本地定义域);
    变量声明可以只用一个 var 关键字声明,多个变量用逗号隔开;
    赋值尽量写在变量声明当中。
    使用 === 精确的比较操作符,避免在判断的过程中,由 JavaScript 的强制类型转换所造成的错误(比较的双方必须是同一类型才会有效);
    在用if作判断的时候,下列表达式统统返回 false:false, 0, undefined, null, NaN, ''(空字符串).
    统一使用单引号(‘),不使用双引号(“)。这在创建 HTML 字符串非常容易辨别;

    true和false布尔表达式

    • 类型检测优先使用 typeof
    • 对象类型检测使用 instanceof
    • null 和 undefined的检测使用 == null
    运算式 返回值
    null false
    undefined false
    ''(空字符串) false
    数字0 false
    "0" true
    [] true
    {} true
    undefined == null true
    [] == [] false

    不要在Array上使用for-in循环

    for-in 循环只用于object/map/hash循环,
    因为for-in循环不是从0到length-1进行遍历的,它遍历的是所有出现在对象和原型链上的key

    二元和三元操作符

    • 操作符始终写在前一行,避免分号隐式插入产生问题
    • 三元操作符用于代替if操作

    &&和||
    二元操作符是可短路的,只有在必要的时候才会计算到最后一项。

    相关文章

      网友评论

          本文标题:JavaScript规范

          本文链接:https://www.haomeiwen.com/subject/aunfbqtx.html