前端编码习惯养成

养成好(dai)的(ma)习(gui)惯(fan)

HTML

  1. 为每个 HTML 页面的第一行添加标准模式(standard mode)的声明,这样能够确保在每个浏览器中拥有一致的展现。
<!DOCTYPE html>
  1. 为页面添加语言属性
<!DOCTYPE html>
<html lang="zh-CN">
    <!-- ... -->
</html>
  1. 字符编码
    <meta charset="UTF-8">
  1. IE兼容模式
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  1. 尽量遵循 HTML 标准和语义,但是不要以牺牲实用性为代价。任何时候都要尽量使用最少的标签并保持最小的复杂度。

  2. 尽量不使用行内样式

  3. 属性的顺序:常用的属性靠前例如classidboolean类型的属性,不用赋值,放在最后。

CSS

  1. 用四个空格来代替制表符(tab)

  2. 为选择器分组时,将单独的选择器单独放在一行。

  3. 为了代码的易读性,在每个声明块的左花括号前添加一个空格。

  4. 声明块的右花括号应当单独成行。

  5. 为了获得更准确的错误报告,每条声明都应该独占一行。

  6. 所有声明语句都应当以分号结尾。

  7. 对于属性值或颜色参数,省略小于1的小数前面的0(例如,.5 代替 0.5;-.5px 代替 -0.5px)。

  8. 十六进制值应该全部小写,尽量使用简写的形式,例如,#fff 代替#ffffff。

  9. 为选择器中的属性添加双引号,例如,input[type="text"]

  10. 避免为0值指定单位,例如,用margin: 0;代替margin: 0px;

  11. 伪元素使用:的写法,如不需要兼容IE8及IE8以下浏览器,可使用::替换:的写法。例如::before替换:before

  12. 为每个需要控制的元素节点,添加对应的class进行控制,而不是使用元素选择器来进行控制,因为CSS的解释编译是从右往左进行的。

  13. 关于命名

    • class名称中只使用小写字符和减号-,—不使用下划线,也使用驼峰命名法—。
    • 文件命名同上
    • 使用有组织的或目的明确的名称,名称应当尽可能短,并且意义明确。例如:
    • 尽量全部用英语命名,不用英语中间参杂拼音,不会的单词可以Google。
  14. 使用LESS 或 SCSS 编写的时候不需要带前缀的属性声明,因为在对其进行编译的时候使用gulp-autoprefixer可自动为编译后的CSS加上对应的浏览器前缀。

建议css代码结构

/*单个选择器*/
selector {
    /*...*/
}

/*多个选择器,每个选择器都换行*/
selector1,
selector2,
selector3 {
    /*...*/
}

CSS模块化,以及预编译语言的使用(LESS OR SCSS)

  1. 定义浏览器统一的默认样式:Normalize.css

  2. 布局类通用模块

    1. grid module,网格模块
    2. media module,媒体类数据展示
    3. slide module,轮播模块
    4. list module,列表类模块
  3. 工具类模块,例如

    /*清除浮动*/
    .clear-fix {
        *zoom: 1;
    }
    .clear-fix::before,
    .clear-fix::after {
        display: table;
        clear: both;
        content: "";
    }
    .clearfix::after { 
        clear: both; 
    }
    
  4. LESS OR SCSS 的使用

    1. 使用构建工具,如gulp来进行编译。

    2. 编写样式的时候无需加浏览器前缀。
      使用gulp-autoprefixer
      browserslist


JS

  1. 命名

    变量、函数参数:使用Camel(驼峰)命名的方式。

    var isLogin = function(accountId) {
        // do something
    };
    

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

    var GLOBAL_CONFIG = {};
    

    函数:使用 Camel命名法。

    function testFunc() {
        // do something
    }
    

    类、构造函数、枚举变量 使用 Pascal(帕斯卡)命名法

    // class
    function TestClass() {
        // do something
    }
    
    // 构造函数
    function TestClass(text) {
        this.text = text;
    }
    
    // 枚举变量:枚举属性全部采用大写加下划线的方式
    var Status = {
        DEFAULT: 0,
        NEW: 1,
        UPDATE: 2,
        READONLY: 3
    };
    

    boolean类型的变量使用 ishas 开头

    var isLoaded = true;
    var hasPermission  = false;
    

    jquery对象以$开头

    var $elem = $(selector);
    
  2. 注释

    单行注释
    必须独占一行。// 后跟一个空格,缩进与下一行被注释说明的代码一致。

    多行注释 避免使用 /*...*/ 这样的多行注释。有多行注释内容时,使用多个单行注释。

    文档化注释 使用 /**...*/ 形式的块注释中。

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

构建工具的使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容