zoukankan      html  css  js  c++  java
  • JavaScript 编码风格指南

    A.1  缩进

    //  4个空格的层级缩进
    if (true) {
        doSomething();
    }

    A.2  行的长度

    //  每行限于80个字符,超出则在运算符后换行,缩进2个层级(8个空格)
    doSomething(argument1, argument2, argument3, argument4,
            argument5);

    A.3  原始值

    //  字符串使用双引号及长字符串的链接
    var name = "Nicholas",
        longStr = "this is a long string you should " +
                  "change another line.";
    
    //  数字
    var count = 10,
        price = 10.50,
        num = 1e10;
    
    //  null,表示或期望是对象
    var person = null; function getPerson () { if (condition) { return new Person("Nicholas"); } else { return null; } }

    //  undefined  变量声明而未赋值的状态,避免使用;
    var variable = undefined   //  dont do this
    if (typeof variable === "undefined") { // do like this }

     A.4  运算符间距

    //  运算符前后使用一个空格来保持表达式的整洁
    var found = (value[i] === item);
    
    if (found && (count > 10)) {
        doSomething();
    }
    
    for (i = 0; i < count; i++) {
        process(i);
    }

    A.5  对象直接量

    //  层级缩进、语段前后空行、函数前后空行、属性不加引号、冒号紧跟其后
    var object = {
        key1: value1,
        key2: value2,
    
        func: function () {
            // a function to do something
        },
    
        key3: value3
    }

    A.7  注释

    //  单行注释1
    if (condition) {
        
        //  如果代码执行到这里,表明通过了安全检查
        doSomething();
    }
    
    //  单行注释2
    var result = result1 + result2;  //  result1, result2应当是整数
    
    //  多行注释
    function getResult (arg1, arg2) {
    
        /*
         *  @para arg1
         *  @para arg2
         */
        doSomething();
    }

    A.8  变量声明

    //  整齐、未初始化变量放最后
    var count = 10,
        name = "Nicholas",
        found = false,
        empty;

    A.9  函数声明

    //  标准式
    function sum(arg1, arg2) {
        return arg1 + arg2;
    }
    
    //  道格拉斯推荐式(变量引用式)
    var sum = function (arg1, arg2) {
        return arg1 + arg2;
    };
    
    //  立即调用式
    var value= (function() {
        
        //  函数体
    
        return {
            message: "Hi"
        }; 
    }());

    A.10  命名

    // 普通变量用小驼峰命名法,不要使用下划线,不要用动词开头
    var accountNumber = "8341";
    
    //  函数命名用动词开头表意
    function getPerson() {
        // return a person object
    }
    
    // 构造函数用名词开头且首字母大写
    function Person(name) {
        this.name = name;
    }
    
    // 常量
    var TOTAL_COUNT = 10;
    
    // 私有变量
    var object = {
        _count: 10,
    
        getCount: function() {
            return this._count;
        }
    };

     A.11  严格相等及表达式赋值

    // 通过相等判断赋予布尔值
    var flag = (a === b);

    A.12  三元操作符

    // 三元操作符应当仅仅用在条件赋值语句中
    var value = (condition ? value1 : value2);
    
    // dont do like this, do it use if instead
    condition ? doSomething() : doSomethingElse();

    A.13  语句示例

    // if
    if (condition) {
        statements
    }
    
    // for
    var i, len;
    for (i = 0, len = 10; i < len; i++) {
        // code
    }
    
    var prop;
    for (prop in object) {
    
        if (object.hasOwnProperty(prop)) {
            // code
        }
    }
    
    // while
    while (condition) {
        statements
    }
    
    // switch
    switch (value) {
        case 1:
            statements;
            break;
    
        case 2:  // falls through
        case 3:
            statements;
            break;
    
        // no default
    }

    A.14  使用严格模式吧,在一个函数里

    (function() {
        "use strict";
    
        //  code
    }());
  • 相关阅读:
    Java8 Lambda表达式详解手册及实例
    成功,侥幸,以小博大?永远离不开的墨菲定律
    Java8 Stream性能如何及评测工具推荐
    康威定律,作为架构师还不会灵活运用?
    Java8 Stream新特性详解及实战
    Java SPI机制实战详解及源码分析
    jQuery是什么
    庞氏骗局
    excel中VBA的使用
    wcf ServiceContract
  • 原文地址:https://www.cnblogs.com/xiankui/p/3754068.html
Copyright © 2011-2022 走看看