• 前端开发规范


    注释

    合理的注释可以让代码更易阅读、更具美感。

    函数/方法注释

    函数/方法注释必须包含函数说明,有参数和返回值时必须使用注释标识;
    参数和返回值注释必须包含类型信息和说明;

    /**
     * 函数描述
     *
     * @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
        };
    }


    文件注释

    文件注释用于告诉不熟悉这段代码的读者这个文件中包含哪些东西。 应该提供文件的大体内容, 它的作者, 依赖关系和兼容性信息。如下:

    /**
     * @des: 描述信息
     * @author 作者
     * @date 日期
     */

    命名

    变量, 使用 Camel 命名法

    var userName = {};

    私有属性、变量和方法以下划线 _ 开头

    var _userName = {};

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

    var API_PATH = {};

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

    function getUserName(userId) {
    
    }

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

    function PersonMan(userName) {
        this.userName = userName;
        this.getUserName = function(){
            return this.userName;
        }
    }
    PersonMan.prototype.setUserName= function (userName) {
        this.userName = userName;
    };

    命名语法

    类名,使用名词

    function Person(personName) {
    
    }

    函数名,使用动宾短语

    function getStyle(element) {
    
    }

    boolean 类型的变量使用 is 或 has 开头

    var isLoading = false;
    var hasName = false;

    True 和 False 布尔表达式

    类型检测优先使用 typeof。对象类型检测使用 instanceof。null 或 undefined 的检测使用 == null。

    下面的布尔表达式都返回 false:
    null
    undefined
    '' 空字符串
    0 数字0
    
    但下面的, 都返回 true:
    '0' 字符串0
    [] 空数组
    {} 空对象

    jQuery 变量

    存放 jQuery 对象的变量以 $ 开头;
    将 jQuery 选择器返回的对象缓存到本地变量中复用;
    使用驼峰命名变量;

    var $myDiv = $("#myDiv");
    $myDiv.click(function(){...});

    避免不必要的 DOM 操作

    当要操作 DOM 元素的时候,尽量将其分离节点,操作结束后,再插入节点;

    var $myList = $("#list-container > ul").detach();
    $myList.appendTo("#list-container");

    使用字符串连接或 array.join 要比 .append()性能更好;

    // 不推荐
    var $myList = $("#list");
    for(var i = 0; i < 10000; i++){
        $myList.append("<li>"+i+"</li>");
    }
    
    // 推荐
    var $myList = $("#list");
    var list = "";
    for(var i = 0; i < 10000; i++){
        list += "<li>"+i+"</li>";
    }
    $myList.html(list);
    
    // 强烈推荐
    var array = [];
    for(var i = 0; i < 10000; i++){
        array[i] = "<li>"+i+"</li>";
    }
    $myList.html(array.join(''));

    异步加载第三方内容

    当你无法保证嵌入第三方内容(比如嵌入谷歌统计)可以正常工作的时候,你需要考虑用异步加载这些代码,避免阻塞整个页面加载。

    (function() {
    
        var script,
            scripts = document.getElementsByTagName('script')[0];
    
        function load(url) {
          script = document.createElement('script');
          script.async = true;
          script.src = url;
          scripts.parentNode.insertBefore(script, scripts);
        }
    
        load(url);
    }());
    junhui.z zjh5433341142@163.com
  • 相关阅读:
    scjp考试准备
    scjp考试准备
    scjp考试准备
    scjp考试准备
    maven学习手记
    maven学习手记
    ExtJS MVC 学习手记3
    调整maven配置文件
    ExtJS MVC学习手记 2
    ExtJS MVC学习手记 1
  • 原文地址:https://www.cnblogs.com/gzx618/p/5709868.html
Copyright © 2020-2023  润新知