// 数组
var a = [x1, x2, x3];
var a2 = [x1, x2];
var a3 = [x1];
var a4 = [];
// 对象
var o = {};
var o2 = {
a: 0,
b: 1,
c: 2,
'strange key': 3
};
不推荐:
// 数组
// Length is 3.
var a1 = new Array(x1, x2, x3);
// Length is 2.
var a2 = new Array(x1, x2);
var a3 = new Array(x1);
// Length is 0.
var a4 = new Array();
// 对象
var o = new Object();
var o2 = new Object();
o2.a = 0;
o2.b = 1;
o2.c = 2;
o2['strange key'] = 3;
前端开发规范:命名规范、html规范、css规范、js规范
基本准则
符合web标准, 语义化html, 结构、表现、行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能的减小服务器负载, 保证最快的解析速度.
命名
变量命名:
推荐:
不推荐:
函数:
推荐:
常量:
命名方法 : 全部大写 命名规范 : 使用大写字母和下划线来组合命名,下划线用以分割单词。 推荐:
注释规范:
单行注释 ( // )
推荐:
多行注释 ( / 注释说明 / )
推荐:
HTML规范
文档规范:
使用 HTML5 的文档声明类型 :
<!DOCTYPE html>
脚本加载:
所有浏览器中推荐:
ie10+及移动端:
语义化:
使用语义化标签有利于SEO。
alt标签不为空
结构、表现、行为三者分离
尽量在文档和模板中只包含结构性的 HTML;而将所有表现代码,移入样式表中;将所有动作行为,移入脚本之中。 在此之外,为使得它们之间的联系尽可能的小,在文档和模板中也尽量少地引入样式和脚本文件。 建议:
JS规范
代码规范
代码规范: 遵循ESlint规范及风格。
使用 ECMA Script 6
建议使用 ECMA Script 6 中新增的语法糖和函数。这将简化你的程序,并让你的代码更加灵活和可复用。
避免全局命名空间污染
尽量不用全局变量,推荐使用IIFE(立即执行的函数表达式):
数组和对象字面量
用数组和对象字面量来代替数组和对象构造器。数组构造器很容易让人在它的参数上犯错,推荐使用数组及对象的字面量形式。 推荐:
不推荐:
使用全局等
总是使用 === 精确的比较操作符,避免在判断的过程中,由 JavaScript 的强制类型转换所造成的困扰。例如:
三元条件判断(if 的快捷方法)
用三元操作符分配或返回语句。在比较简单的情况下使用,避免在复杂的情况下使用。
推荐:
不推荐:
CSS规范
id和class的命名
ID和class的名称总是使用可以反应元素目的和用途的名称,或其他通用的名称,代替表象和晦涩难懂的名称。
推荐:
不推荐:
class 必须单词全字母小写,单词间以 - 分隔。
class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名。
示例:
合理的使用ID
一般情况下ID不应该被用于样式,并且ID的权重很高,所以不使用ID解决样式的问题,而是使用class。 推荐: .content .title { font-size: 2em; } 不推荐: #content .title { font-size: 2em; }
css选择器中避免使用标签名
从结构、表现、行为分离的原则来看,应该尽量避免css中出现HTML标签,并且在css选择器中出现标签名会存在潜在的问题。
使用子选择器
推荐:
不推荐:
尽量使用缩写属性
尽量使用缩写属性对于代码效率和可读性是很有用的,比如font属性。
推荐:
不推荐:
属性书写顺序
结构性属性:
1.display 2.position, left, top, right 3.overflow, float, clear 4.margin, padding 表现性属性: 1.background, border 2.font, text
推荐:
不推荐: