前端开发规范

注释

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

函数/方法注释

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

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

转载于:https://www.cnblogs.com/gzx618/p/5709868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值