• JS代码规范


    JS代码规范

    空格

    二元运算符两侧必须有一个空格,一元运算符与操作对象之间不允许有空格。

    var a = !arr.length;
    a++;
    a = b + c;
    复制代码

    用作代码块起始的左花括号 { 前必须有一个空格。

    // good
    if (condition) {
    }
    
    function funcName() {
    }
    
    // bad
    if (condition){
    }
    
    function funcName(){
    }
    复制代码

    if / else / for / while / function / switch / do / try / catch / finally 关键字后,必须有一个空格。

    // good
    if (condition) {
    }
    
    while (condition) {
    }
    
    (function () {
    })();
    
    // bad
    if(condition) {
    }
    
    while(condition) {
    }
    
    (function() {
    })();
    复制代码

    在对象创建时,属性中的 : 之后必须有空格,: 之前不允许有空格。

    // good
    var obj = {
        a: 1,
        b: 2,
        c: 3
    };
    
    // bad
    var obj = {
        a : 1,
        b:2,
        c :3
    };
    复制代码

    函数声明、具名函数表达式、函数调用中,函数名和 ( 之间不允许有空格。

    // good
    function funcName() {
    }
    
    var funcName = function funcName() {
    };
    
    funcName();
    
    // bad
    function funcName () {
    }
    
    var funcName = function funcName () {
    };
    
    funcName ();
    复制代码

    , 和 ; 前不允许有空格。

    // good
    callFunc(a, b);
    
    // bad
    callFunc(a , b) ;
    复制代码

    单行声明的数组与对象,如果包含元素,{} 和 [] 内紧贴括号部分不允许包含空格。

    // good
    var arr1 = [];
    var arr2 = [1, 2, 3];
    var obj1 = {};
    var obj2 = {name: 'obj'};
    var obj3 = {
        name: 'obj',
        age: 20,
        sex: 1
    };
    
    // bad
    var arr1 = [ ];
    var arr2 = [ 1, 2, 3 ];
    var obj1 = { };
    var obj2 = { name: 'obj' };
    var obj3 = {name: 'obj', age: 20, sex: 1};
    复制代码

    行尾不得有多余的空格。

    换行

    每个独立语句结束后必须换行。


    运算符处换行时,运算符必须在新行的行首。

    // good
    if (user.isAuthenticated()
        && user.isInRole('admin')
        && user.hasAuthority('add-admin')
        || user.hasAuthority('delete-admin')
    ) {
        // Code
    }
    
    var result = number1 + number2 + number3
        + number4 + number5;
    
    
    // bad
    if (user.isAuthenticated() &&
        user.isInRole('admin') &&
        user.hasAuthority('add-admin') ||
        user.hasAuthority('delete-admin')) {
        // Code
    }
    
    var result = number1 + number2 + number3 +
        number4 + number5;
    复制代码

    对于 if...else...、try...catch...finally 等语句,推荐使用在 } 号后添加一个换行 的风格,使代码层次结构更清晰,阅读性更好。

    if (condition) {
        // some statements;
    }
    else {
        // some statements;
    }
    
    try {
        // some statements;
    }
    catch (ex) {
        // some statements;
    }
    复制代码

    语句

    在 if / else / for / do / while 语句中,即使只有一行,也不得省略块 {...}。

    // good
    if (condition) {
        callFunc();
    }
    
    // bad
    if (condition) callFunc();
    if (condition)
        callFunc();
    复制代码

    函数定义结束不允许添加分号。

    // good
    function funcName() {
    }
    
    // bad
    function funcName() {
    };
    
    // 如果是函数表达式,分号是不允许省略的。
    var funcName = function () {
    };
    复制代码

    命名

    注* :
    Camel命名法:驼峰命名法如 myFirstName
    Pascal命名法:帕斯卡命名法如 FirstName、LastName


    变量 使用 Camel命名法。

    var loadingModules = {};
    复制代码

    常量 使用 全部字母大写,单词间下划线分隔 的命名方式。

    var HTML_ENTITY = {};
    复制代码

    函数 使用 Camel命名法。

    function stringFormat(source) {
    }
    复制代码

    函数的 参数 使用 Camel命名法。

    function hear(theBells) {
    }
    复制代码

    类 使用 Pascal命名法。

    function TextNode(options) {
    }
    复制代码

    类的 方法 / 属性 使用 Camel命名法。

    function TextNode(value, engine) {
        this.value = value;
        this.engine = engine;
    }
    
    TextNode.prototype.clone = function () {
        return this;
    };
    复制代码

    原著GitHub地址 : styleguide

    转载于:https://juejin.im/post/5cac1259f265da0360238de1

  • 相关阅读:
    MySQL_update同一张表
    MySQL_前缀索引_建立
    oracle_partition sample_simple
    oracle_partition sample
    java_java 利用JAX-RS快速开发RESTful 服务
    Java_Spring MVC_Servlet
    匿名函数
    randrange()和random() 函数
    迭代器 生成器 面向过程编程
    enumerate 模块
  • 原文地址:https://www.cnblogs.com/twodog/p/12134946.html
Copyright © 2020-2023  润新知