七:注释

// 频繁的使用注释有助于他人理解你的代码
// 1.代码晦涩难懂
// 2.可能被误认为是错误的代码
// 3.必要但不明显的针对特定浏览器的代码
// 4.对于对象,方法或者属性,生成文档是有必要的(使用恰当的文档注释)

七(一):单行注释

// 单行注释应当用来说明一行代码或者一组相关的代码。单行注释可能有三种使用方式
// 1.独占一行的注释,用来解释下一行的代码
// 2.在代码行的尾部的注释,用来解释它之前的代码
// 3.多行,用来注释掉一个代码块

Example:

//好的写法
if (condition) {

//如果代码执行到这里,则表明通过了所有安全性检查
    allowed();
}

//不好的写法:注释之前没有空行
if () {
    //如果代码执行到这里,则表明通过了所有安全性检查
    allowed();

//不好的写法:错误的缩进
if () {
    
//如果代码执行到这里,则表明通过了所有安全性检查
    allowed();
}

//好的写法
var result = something + somethingElse; //注释

//不好的写法:代码和注释间没有足有的空格
var result = something + somethingElse;//注释

// 注释一个代码块时在连续多行使用单行注释是唯一可以接受的情况
// 多行注释不应当在这种情况下使用

//好的写法
// if (condition) {
//       doSomething();
//       theDoSomethingElse();
// }

七(二):多行注释

多行注释应当在代码需要更多文字去解释的时候使用,每个多行注释都至少有如下三行。
1.首行仅仅包括/*注释开始.该行不应当有其他文字
2.接下来的行*开头并保持左对齐。这些行可以与文字描述
3.最后一行以*/开头并同先前保持对齐。也不应当有其它文字

// 多行注释的首行保持同它描述代码的相同层次的缩进,后续的每行应当有同样
// 层次的缩进并附加一个空格。每一个多行代码之前应当预留一个空行

//好的写法
if (condition) {

/*
    * 如果代码执行到这里
    * 说明通过了所有的安全性检测
    */
    allowed();
}

//不好的写法:注释之前无空行
if (condition) {
    /*
    * 如果代码执行到这里
    * 说明通过了所有的安全性检测
    */
    allowed();
}

七(三):多行声明

// 注释有时候也可以用来给一段代码声明额外的信息。这些声明的格式以单个单词
// 打头并紧跟一个冒号。可使用的声明如下:

// TODO: 说明代码还未完成,应当包含下一步要做的事情
// HACK:表明代码实现走了一个捷径。应当包含为何使用 hack 的原因。
//       这也可能表明该问题可能会有更好的解决方法
// ××× : 说明代码是有问题的并应当尽快修复
// FIXME:说明代码是有问题的并应尽快修复。重要性略次与×××
// REVIEW: 说明代码任何可能的改动都需要评审

// 这些声明可能在一行或多行注释中使用,并且应当遵循同一般注释类型相同的格式规则

Example:

//好的写法
//TODO: 我希望找到以后总更快的方式
doSomething();

//好的写法
/*
* HACK: 不得不针对IE做的特殊处理。我计划后续有时间
* 重写这部分。这些代码可能需要在 1.72版本之前替换掉。
*/
if (document.all) {
    doSomething();
}

七(四):多行声明

// 所有的变量在使用前都应当事先定义。变量定义应当放在函数开头,还有一个var
// 表达式,每行一个变量,除了首行。所有行都应当多一层缩进以使变量名能够垂直
// 方向对齐。变量定义是应当初始化,并且赋值操作操作符保持一致的缩进。初始化
// 的变量应当在未初始化变量之前

//好的写法
var count = 10,
    name = "M",
    found = false,
    empty;

//不好的写法:错误的缩进
var count= 10,
  name = "M",
  found = false,
  empty;

//不好的写法:未初始化的变量放在最前边
var empty,
    count = 10,
    name = "M",
    found = false,

七(五):函数声明

// 函数应在使用前提前定义。一个不是作为方法的函数(也就是说没有作为一个对
// 象的属性)应当使用函数定义的格式(不是函数表达式和Function构造器格式)
// 函数名和开始圆括号之间不应当有空格。结束的圆括号和右边的花括号之间应该留意
// 个空格。右侧的花括号应当同function关键字保持同一行。开始和结束括号之间不应
// 该有空格。参数之间应当在逗号之后保留一个空格。函数体应当保持一级缩进。

//好的写法
function doSomething(arg1, arg2) {
    return arg1 + arg2;
}

//不好的写法:第一行不恰当的空格
function doSomething (arg1, arg2) {
    return arg1 + arg2;
}

//不好的写法:函数表达式
var doSomething = function(arg1, arg2) {
    return arg1 + arg2;
}

其它函数内部定义的函数应当在var语句后立即定义

//好的写法
function outer() {
    var count = 10,
        name = "M",
        found = false,
        empty;

function inner() {
        //代码
    }
}

//不好的写法
function outer() {

function inner() {
        //代码
    }

var count = 10,
        name = "M",
        found = false,
        empty;
}

// 匿名函数可能作为方法赋值给对象,或者作为其他函数的参数。function 关键字
// 同开始括号之间不应该有空格

//好的写法
object.method = function() {
    //code
};

//不好的写法
object.method = function () {
    //code
};

// 立即被调用的函数应当在函数调用的外层用圆括号包裹
//好的写法
var value = (function() {

//函数体

return {
        message: "Hi"
    }
}());

//不好的写法:圆括号位置不当
var value = (function() {

//函数体

return {
        message: "Hi"
    }
})();

七(六):命名

// 变量和函数在命名时应当小心。命名应仅限制与数组字母字符,某些情况下也可以使用
// 下划线。最好不要在任何命名中使用美元符号($)或者反斜杠(\)

// 变量命名也应当采用驼峰命名格式,首字母小写,每个单词字母大写。变量名的第
// 一个单词应当是一个名词(而非动词)以避免同函数混淆。不要在变量命名中使用下划线

//好的写法
var accountNumber = "23454";

//不好的写法:大写字母开头
var AccountNumber = "23454";

//不好的写法:动词开头
var getAccountNumber = "23454";

//不好的写法:使用下滑线
var account_number = "23454";

// 函数命名也应当采用驼峰命名格式。函数名的第一个单词应当是动词(而非名词)
// 来避免同变量混淆。函数名中最好不要使用下划线

//好的写法
function doSomething() {
    //code
}

//不好的写法:大写字母开头
function DoSomething() {
    //code
}

//不好的写法:使用下划线
function Do_Something() {
    //code
}

// 构造函数---通过new运算符创建新对象的函数---也应当以驼峰格式,命名并且
// 首字母大写,构造函数名称应当以非动词开头,因为new代表着创建一个对象实例的操作

//好的写法
function MyObject() {
    //code
}

//不好的写法:小写字母开头
function myObject() {
    //code
}

//不好的写法:使用下划线
function My_Object() {
    //code
}

//不好的写法: 使用动词开头
function getMyObject() {
    //code
}

// 常量(值不会被改变的变量)的命名应当是所有字母大写,不同单词之间用单个下滑下隔开

//好的写法
var TOTAL_COUNT = 10;

// 对象的属性同变量的命名规则相同。对象的方法同函数的命名规则相同。如果属性
// 或者方法是私有的,应当在之前加一个下划线

//好的写法
var object = {
    _count: 10,

_getCount: function () {
        return this._count;
    }
};

JavaScript编写风格指南 (二)的更多相关文章

  1. JavaScript编写风格指南 (一)

    //参考<编写可维护的Javascript>  一:缩进// 第一行的层级由4个空格组成,避免使用制表符tab进行缩进 //好的写法if (true) {    doSomething() ...

  2. JavaScript编写风格指南 (三)

    七(七):严格模式 // 严格模式应当仅限在函数内部使用,千万不要在全局使用 //不好的写法:全局使用严格模式"user strict"; function doSomething ...

  3. 13点值得我们注意的谷歌的JavaScript编写风格

    对于编写有效的JavaScript来说,这些并不是硬性的.快速的规则,而只是在源文件中维护一致的.吸引人的样式选择的规则.这对于JavaScript来说尤其有趣,它是一种灵活且多变的语言,允许多种风格 ...

  4. Google JavaScript代码风格指南

    Google JavaScript代码风格指南 修正版本 2.28 Aaron Whyte Bob Jervis Dan Pupius Eric Arvidsson Fritz Schneider R ...

  5. Protocol buffers编写风格指南

    原文链接:https://developers.google.com/protocol-buffers/docs/style Style Guide 本文说明了.proto文件的编写风格指南.遵循这些 ...

  6. JavaScript编码风格指南(中文版)

    前言: 程序语言的编码风格对于一个长期维护的软件非常重要,特别是在团队协作中.如果一个团队使用统一规范的编码分风格,可以提高团队的协作水平和工作效率.编程风格指南的核心是基本的格式化规则,这些规则决定 ...

  7. 《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值

    记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...

  8. JavaScript 代码风格指南

    一.基本格式 缩进 建议每级4个空格,可以给编辑器设置tab = 4个空格,自动转换 分号 不要省略分号,防止ASI(自动插入分号)错误 行宽 每行代码不超过80个字符,过长应该用操作符手动断行 断行 ...

  9. Airbnb JavaScript 编码风格指南(2018年最新版)

    原网址 :  https://segmentfault.com/a/1190000013040555 类型 基本类型:直接存取 string number boolean null undefined ...

随机推荐

  1. xss基础

    0x0 定义 总结: (1)     在页面显示 (2)     用户可控 满足以上两点就有可能存在xss 0x1反射型 0x2存储型 0x3 DOM型 与反射型相似 也是从get等参数传参 但 反射 ...

  2. Daily Scrum NO.8

    工作概况 今天是周六,虽然由于工作紧张要求这一日也定为工作日,但是也许是因为昨日大家工作做得较多或者周末的缘故,今天的进展状况并不理想.线程池和异常清理器的后端已经完成,而清理器的界面和动态爬取仍旧没 ...

  3. LINUX内核分析第六周学习总结——进程的描述和进程的创建

    LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cours ...

  4. 《Linux内核设计与实现》Chapter 1 读书笔记

    <Linux内核设计与实现>Chapter 1 读书笔记 一.Unix的特点 Unix从Multics中产生,是一个强大.健壮和稳定的操作系统. 特点 1.很简洁 2.在Unix系统中,所 ...

  5. jqGrid属性中文详细说明

    jqGrid属性中文详细说明 jqGrid的属性很多,其实很大部分的属性,使用其默认值就可以了.但是详细了解一下属性的含义以及作用,对我们定制自己的grid是有帮助的. 以下内容描述格式是:属性名称 ...

  6. 第一个Sprint冲刺总结(事后诸葛亮及团队贡献分)

    第一个Sprint冲刺总结(事后诸葛亮及团队贡献分)   组员:欧其锋 廖焯燊 林海信 何武鹏 第一阶段的最终燃尽图如下: 2.事后诸葛亮: 3.团队贡献分: 欧其锋:22 林海信:21 何武鹏:19 ...

  7. appearance格式化表单元素的边框,在chrome和FF下鼠标点击时会多出一个蓝色边框

    可在元素上添加样式 -webkit-appearance: none; -moz-appearance:none;outline:none; 清除掉元素所有的外貌,以便自定义风格

  8. [51CTO]服务器虚拟化开源技术主流架构之争

    服务器虚拟化开源技术主流架构之争 http://virtual.51cto.com/art/201812/589084.htm 大部分客户已经是KVM+OpenStack的架构了 我所见到的 工商云 ...

  9. 如何取消mysql的密码?

    有两种方法: 1.mysql命令 SET PASSWORD FOR root@localhost=PASSWORD(''); 2.运行  mysqladmin 命令 mysqladmin -u roo ...

  10. Java NIO Socket编程实例

    各I/O模型优缺点 BIO通信模型 BIO主要的问题在于每当有一个新的客户端请求接入时,服务端必须创建一个新的线程处理新接入的客户端链路,一个线程只能处理一个客户端连接 线程池I/O编程 假如所有可用 ...