美文网首页
前端编码习惯养成

前端编码习惯养成

作者: huange | 来源:发表于2016-06-14 15:35 被阅读0次

    养成好(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
          };
      }
      

    构建工具的使用

    相关文章

      网友评论

          本文标题:前端编码习惯养成

          本文链接:https://www.haomeiwen.com/subject/egmydttx.html