编写可维护的javascript读后笔记(一)

编写可维护的javascript读后笔记(一)

本书主要是讲解了怎么样使自己写的代码更具可读性和可维护性。是初学javascript同学需要看的一本书。本人就看后做的一些笔记拿来分享。

本书主要分为三部分:
第一部分:编程风格
第二部分: 编程实践
第三部分:自动化

这一篇主要总结的是第一部分编程风格。

第一章 基本的格式化

  1. 本章介绍了编程的基本规范格式 包括缩进, 语句结尾符号,行的长度限制,以及换行 空行和变量 函数命名规则。
  2. 缩进
    可以保持代码的整洁性,缩进层级 一般主要有两种方式:
    (1)两个制表符(即两个tab键)
    (2)四个空格键
    两种缩进方式都可,只要团队内部约定好其中一种,保持一致即可。
  3. 语句结尾“;”
    由于javascript引擎会在没有结尾符号的地方自动添加“;”所以以防出错,需要自己再语句结尾处添加“;”。否则可能出现不必要的错误。
  4. 行的长度限制
    根据一般规范,每行的长度最好不要超过80个字符。否则阅读起来可能有些不方便。
  5. 换行
    当一行长度达到了最大长度限制80个字符后,需要手动将一行拆成两行,一般都会选择在运算符后换行,下一行会增加两个层级的缩进。例如:
  callAFunc(arg1, arg2, arg3, arg4, arg5, arg6, arg7,
    arg8,arg9);

6.空行
在某些代码的地方适当的运用空行可以增加代码的可读性;
(1)在方法之间
(2)在方法的局部变量和第一条语句之间
(3)在多行或单行注释之前
(4)在方法内部逻辑片段之间插入空行(或注释),提高可读性

7.命名
javascript典型的命名规则是驼峰命名法,首字母小写,其后每个单词 首字母大写。

在给变量和函数命名的时候 :
变量尽量用名词命名
函数用动词命名(can, has, is, get, set)
常量命名一般都用全大写加个“_”
构造函数 首字母大写
例如:

// 变量
var myName="nike";

// 常量
var MAX_LENGTH = 10;

// 函数
var getName= function() {
    return "nike";
}

//构造函数
function Person(name,age) {
    this.name=name;
    this.age=age;
}

第二章 注释

必要的注释可以增强自己代码的可读性。也方便以后自己查看自己代码时不会忘记当初为什么这么写。

1、 注释主要有两种
(1)单行注释
(2)多行注释

// 这是单行注释
var count = 10;

var count = 19; //这是放在行尾的单行注释

/*
 * 这是多行注释的第一行
 * 这是多行注释的第二行
 * ...
 * /

// 文档注释 一般用于介绍函数参数和返回值
/** 
  * method 方法名 用来做什么的
  * @param arg1是干嘛的
  * @return {object} object是什么什么的返回值
  * /

第三章 语句和表达式

本章主要介绍了各语句的规范写法 如 if for循环 switch语句等。
1. 即使if语句只有一个执行语句 也不建议不加花括号。

// 规范的if语句写法
if (condition) {
    doSomething();
}

2.for循环
有两种方法可以更改for循环的执行过程:
(1)break 跳出循环体 立即结束循环
(2)continue 跳出此次循环 执行下一次循环
不建议使用continue语句,某些代码审查工具JSLint会给出警告,尽量使用其他方式代替掉continue语句 如 if(i !=2){执行体};

3.for-in循环
for-in循环是用来遍历对象属性的。它不仅遍历对象的实例属性 还会遍历对象的原型继承属性。如果不想要遍历原型继承的属性可以使用对象的hasOwnProperty()方法;例如:

var k;

for(k in object) {
    if(object.hasOwnProperty(k)) {
        console.log("Property name is" + k);
        console.log("Property value is" + object[k]);
    }
}

第四章 变量、函数和运算符

1.变量声明提升
javascript 会有一个变量名提升的现象,所以在写函数的时候可以把需要声明的变量提前声明好。例如好的写法:

function doSometing(items) {
    var value = 10,
        result = value + 10,
        i,
        len;
    for(i=0,len=items.length; ii++) {
        doSomething(items[i]);
    }
}

2.函数声明提升
函数也存在声明提升问题,虽然可以先调用 后声明,但是以防万一而且某些代码审查工具如JsLint 和JsHint都会给出警告。所以建议还是先声明再调用。

3.立即调用函数
当把一个立即调用函数的返回值赋值给变量时,最好是用()将立即函数包裹起来,否则除非你读完最后的调用语句()才知道是将函数的结果返回值赋给该变量的 例如:

// 不好的写法
var value = function() {
    //函数体;
    return {
        name : "nike"
    }
}();

// 好的写法
var value =(function() {
    //函数体;
    return {
        name : "nike"
    }
}());

你可能感兴趣的:(代码规范,web前端)