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

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"); //不推荐
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值