编写可维护的js代码-编程风格笔记

页面导航:首页 > 网络编程 > JavaScript > 编写可维护的js代码-编程风格笔记

编写可维护的js代码-编程风格笔记

来源: 作者: 时间:2016-01-23 10:23 【

1、基本格式化缩进层级:4个空格(把tab设成4个空格)语句结尾:保留;(虽然分析器有自动分号插入机制)行的长度:80个字符空行:确保语义有关联的代码展现在一起命名:变量和函数遵循

1、基本格式化

缩进层级:4个空格(把tab设成4个空格) 语句结尾:保留;(虽然分析器有自动分号插入机制) 行的长度:80个字符 空行:确保语义有关联的代码展现在一起 命名:变量和函数遵循小驼峰命名法,小写字母开始,后面每个单词首字母大写
变量命名前缀名词myName
函数命名前缀动词setName()
常量MAX_COUNT大写字母和下划线
构造函数大驼峰命名法AnotherName 直接量:
字符串:推荐” “,虽然和’ ‘一样
整数和浮点数:8进制废弃
null:空对象指针
初始化一个变量,这个变量可能赋值为一个对象
和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象
函数的参数期望是对象时,用作参数传入
函数返回值期望是对象时,用作返回值传出
不要用null检测是否传入某个参数
不要用null检测未初始化的变量
undefined:var声明但未初始化,尽量不使用undefined,使用var person=null;
对象:建议使用对象直接量,在直接量中直接写出所有属性;而非显式创建实例然后添加属性的做法。
var book={
    title:"js book",
    author:"wang"
};

数组直接量:

var numbers={1,2,3,4};

2、注释

单行注释:
//好的写法
if (condition) {

    //注释
    allowed();
}

注释前有空行。
代码尾部注释,代码结束到注释间至少有一个缩进。

多行注释:推荐java风格
if (condition){

/*
 * 注释
 * 注释
 */
 allowed();

注释之上有空行
*号之后有空格

难于理解的代码,可能被误认为错误的代码,hack推荐添加注释
方法,构造函数,包含文档化方法的对象推荐加文档注释

3、语句和表达式

块语句推荐使用{}包裹
if for while do…while try…catch…finally

{}推荐使用java风格

if (condition) {
    doSomething();
} else {
    doSomethingElse();
}
switch语句
switch(condition) {
    case "first":
        //代码
        break;

    case "second":
    case "third":
        //代码
        break;
    case "fourth":
        //代码
        break;

    //没有default

每条case语句相对于switch缩进一个层级
第二条case语句开始,每条case语句前后各有一个空行
case语句连续执行紧邻
defau语句不用时注释

with语句:避免使用 for循环:中断,continue ,break,经常遍历数组成员 for-in循环:遍历对象属性,返回属性名,不能遍历数组成员

4、变量函数和运算符
js的本质是编写一个个函数来完成任务,好像js即可以面向对象,又可以面向过程,还可以函数式编程。

变量声明:变量的声明提前,函数内部任意地方定义变量和在函数顶部定义变量是完全一样的,但推荐都放在顶部 函数声明:同样函数声明也会提前
推荐函数声明在使用前
函数声明不推荐在语句块内
内部局部函数声明建议紧跟变量声明之后 匿名函数,推荐函数声明被()包裹
var value = (function() {
    //

    return {
        message: "hi"
    }
}());
推荐局部使用严格模式 强制类型转换:== !=会强制类型转换,推荐=== !== eval() 将传入的字符串当代码来执行,禁止在封闭的作用域中使用它创建新变量和函数 原始包类型:String,Boolean,Number,每种类型代替全局作用域中的一个构造函数,并对应原始值的对象,原始包类型主要是让原始值具有对象般的行为。String是字符串,是原始类型,可以使用方法,原因是方法调用时建立新的实例,但使用后新实例销毁了。 不推荐手动创建这些对象
var name=new String("wang"); //不推荐
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<