美文网首页前端
前端 JAVASCRIPT规范

前端 JAVASCRIPT规范

作者: Diogoxiang | 来源:发表于2019-03-06 10:36 被阅读0次

目录

1.前言

制定良好的统一的JavaScript代码规范,提高代码质量和团队合作的效率。

2. 注释

  • As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性、可读性。
  • As long as necessary(如有必要,尽量详尽):合理的注释、空行排版等,可以让代码更易阅读、更具美感。
  • 函数/方法注释
    (1).函数/方法注释必须包含函数说明,有参数和返回值时必须使用注释标识;
    (2).参数和返回值注释必须包含类型信息和说明;
    (3).当函数是内部函数,外部不可访问时,可以使用 @inner 标识;
    /**
     * 函数描述
     *
     * @param {string} p1 参数1的说明
     * @param {string} p2 参数2的说明,比较长
     * 那就换行了.
     * @param {number=} p3 参数3的说明(可选)
     * @return {Object} 返回值描述
     **/
    function foo(p1, p2, p3) {
        var p3 = p3 || 10;
        return {
            p1: p1,
            p2: p2,
            p3: p3
        };
    }

3.缩进

缩进使用4个空格(四个空格在所有编辑器上显示缩进一致)

4.分号

4.1 在语句(Statement)的结尾加分号

    // bad
    (function() {
      var name = 'Skywalker'
      return name
    })()

    // good
    (function() {
      var name = 'Skywalker';
      return name;
    })();

4.2 这几种情况后需加分号:变量声明 表达式 return throw break continue do-while。

    /* 示例 */
    /* var declaration */
    var x = 1;

    /* expression statement */
    x++;

    /* do-while */
    do {
        x++;
    } while (x < 10);

5.逗号

行首不要出现逗号。

    // bad
    var demo = [
        app
      , icon
      , alive
    ];

    // good
    var demo = [
      app,
      icon,
      alive
    ];

6.引号

最外层统一使用单引号。

    // not good
    var x = "test";

    // good
    var y = 'foo',
    z = '<div id="test"></div>';

7.变量

7.1变量命名

  • 标准变量采用驼峰式命名(除了对象的属性外,主要是考虑到cgi返回的数据)
    //示例
    var thisIsMyName;
  • 'ID'在变量名中全大写
    //示例
    var thisID;
  • 'URL'在变量名中全大写
    //示例
    var reportURL;
  • 'Android'在变量名中大写第一个字母
    //示例
    var AndroidVersion;
  • 'iOS'在变量名中小写第一个,大写后两个字母
    //示例
    var iOSVersion;
  • 常量全大写,用下划线连接
    //示例
    var MAX_COUNT = 10;
  • jquery对象必须以'$'开头命名
    //not good
    var body = $('body');
    // good
    var $body=$('body');

7.2 变量声明

var 语句

  • 使用变量之前必须先定义,不要定义全局变量。
    //bad
    count = 10; //严格模式中报错
    console.log(global.count); //10

    //good
    var count = 10;
  • 使用 var 声明每一个变量。
    这样做的好处是增加新变量将变的更加容易,而且你永远不用再担心调换错分号跟逗号。
    // not good
    var uname,
        uid,
        upwd;
    //good  
    var uname;
    var uid='';
    var upwd='';

8.对象

  • 使用字面值创建对象
    // bad
    var test = new Object();

    // good
    var test = {};
    // bad
    var superman = {
      class: 'superhero',
      default: { clark: 'kent' },
      private: true
    };

    // good
    var superman = {
      klass: 'superhero',
      defaults: { clark: 'kent' },
      hidden: true
    };

9.数组

  • 使用字面值创建数组
    // bad
    var items = new Array();

    // good
    var items = [];
  • 向数组增加元素时使用 Array#push 来替代直接赋值。
    var arrayList = [];
    // bad
    arrayList[arrayList.length] = '111111';

    // good
    arrayList.push('1111111');
  • 当你需要拷贝数组时,使用 Array#slice。参见jsperf
    var len = items.length;
    var itemsCopy = [];
    var i;

    // bad
    for (i = 0; i < len; i++) {
      itemsCopy[i] = items[i];
    }

    // good
    itemsCopy = items.slice();

10.字符串

  • 使用单引号 '' 包裹字符串。
    // bad
    var test = "sakjas";

    // good
    var test = 'adas dasdas';
  • 超过 100 个字符的字符串应该使用连接符写成多行。 但是,如果过度使用,通过连接符连接的长字符串可能会影响性能。jsPerf & 讨论.
    // bad
    var errorMessage = 'This is a super long error that was thrown because of Batman. When you stop to think about how Batman had anything to do with this, you would get nowhere fast.';

    // bad
    var errorMessage = 'This is a super long error that was thrown because \
    of Batman. When you stop to think about how Batman had anything to do \
    with this, you would get nowhere \
    fast.';

    // good
    var errorMessage = 'This is a super long error that was thrown because ' +
      'of Batman. When you stop to think about how Batman had anything to do ' +
      'with this, you would get nowhere fast.';

11.比较运算符 和 等号

  • 优先使用 === 和 !== 而不是 == 和 !=. 使用 === 可以避免等于判断中隐式的类型转换。
    // bad
    if (number == 10) {
        // ......
    }

    // good
    if (number === 10) {
        // ......
    }  
  • 条件表达式例如 if 语句通过抽象方法 ToBoolean 强制计算它们的表达式并且总是遵守下面的规则: 1.对象 被计算为 true 2.Undefined 被计算为 false 3.Null 被计算为 false 4.布尔值 被计算为 布尔的值 5.数字 如果是 +0、-0 或 NaN 被计算为 false,否则为 true 6.字符串 如果是空字符串 '' 被计算为 false,否则为 true

  • 尽量使用简介的表达方式.

    // bad  
    if (name !== '') {  
      // 字符串是否为空
    }

    // good  
    if (name) {  
      // 字符串是否为空
    }

    // bad  
    if (collection.length > 0) {  
      // 数组是否为空  
    }

    // good  
    if (collection.length) {  
      // 数组是否为空  
    }  

了解更多信息在 Truth Equality and JavaScript by Angus Croll.

12.类型转换

  • 字符串:
    //  => this.num = 2;  

    // bad  
    var total = this.num + '';  

    // good  
    var total = '' + this.num;  

    // bad  
    var total = '' + this.num + ' total score';  

    // good  
    var total = this.num + ' total score';    
  • 使用 parseInt 转换数字时总是带上类型转换的基数。
    var inputValue = '4';  

    // bad  
    var val = new Number(inputValue);  

    // bad  
    var val = +inputValue;  
    // bad  
    var val = parseInt(inputValue);  

    // good  
    var val = Number(inputValue);  

    // good 
    var val = parseInt(inputValue, 10);  
  • 转换成布尔类型:
    var page = 0;  

    // bad  
    var tpage = new Boolean(page);

    // good
    var tpage = Boolean(page);  

    // good    
    var tpage = !!page;  

相关文章

  • 前端开发规范(实验室版)

    前端编码规范—— HTML 篇 前端编码规范—— CSS 篇 前端编码规范—— JavaScript 篇 这几天和...

  • Node之模块机制

    CommonJS规范 Javascript作为前端语言一直发展的很好,但是作为后端JavaScript的规范却远远...

  • 前端规范

    常用html、CSS、javascript前端命名规范无论是从技术角度还是开发视角,对于web前端开发规范文档都有...

  • 前端 JAVASCRIPT规范

    目录 1.前言 制定良好的统一的JavaScript代码规范,提高代码质量和团队合作的效率。 2. 注释 As s...

  • 学习参考手册&指导&路线

    命名规范 Tencent AlloyTeam 的前端规范 《javascript启示录》 《你不知道的javas...

  • 5 种 JavaScript 编码规范,你喜欢哪一个?

    无论你是刚刚学习 JavaScript,还是正在准备大厂的前端面试,下面这 5 种 JavaScript 编码规范...

  • 前端javascript编码规范

    对齐缩进与换行r 缩进 在同一系统中应采用同一种缩进标准,缩进大小为4个空格。各编译器对Tab键所代替的空白大小定...

  • 前端javascript编写规范

    导语: 为了便于前端JavaScript的开发和维护,编写出的代码是易读易懂的,并确保在团队中的所有成员杜能保持相...

  • iOS代码规范化之 Objective-Clean 的使用

    最近公司要求代码规范化,于是开始了解相关方法.。关于Web前端规范化我们使用的是JavaScript Standa...

  • javascript 编码规范

    前端编码风格规范(3)—— JavaScript 规范 其他三个写的也挺好的,不过html和css我已经参照了其他...

网友评论

    本文标题:前端 JAVASCRIPT规范

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