1.6 代码注释

手机商店的店员可能会草草记下新发布手机的特性或者其公司提供的新套餐。这些笔记只是给店员看的,而不是给顾客阅读的。然而,通过记录要向顾客提供的信息以及提供方式,这些笔记可以帮助店员提高自己的工作质量。

这里可以学到的最重要的一点是,编写代码并不只是为了给计算机看。在给计算机看的同时,代码同样要给开发者阅读。

计算机只关心机器码,也就是那些编译之后得到的二进制0和1序列。要想得到同样的0和1序列,几乎有无数种程序写法。而你选择的程序编写方案很重要,这不只是对你个人来说,对小组的其他成员,甚至对未来的你也同样很重要。

编写程序时不仅应该努力做到让程序能够正确执行,而且应该做到使代码阅读起来也是容易理解的。你可能需要花费很多精力为变量(参见1.7节)和函数(参见1.11节)选择一个好的名字。

另一个非常重要的部分是代码注释。这是程序中的文本,将其插入程序只是为了向人类解释说明代码的执行。解释器/编译器会忽略这些注释。

有关如何编写注释良好的代码有很多种观点;我们确实无法定义绝对的普遍标准。但是以下这些观察结论和指导原则是很有用的。

· 没有注释的代码不是最优的。

· 过多注释(比如每行一个)可能是拙劣代码的征兆。

· 代码应该解释为什么,而非是什么。如果编写的代码特别容易令人迷惑的话,那么注释也可以解释一下实现原理。

JavaScript中的注释有两种类型:单行注释和多行注释。

考虑:

        // 这是一个单行注释


        /* 而这是
              一个多行
                  注释。
                      */

如果想要将注释放到单个语句上方或者一行的末尾,那么可以使用单行注释//。这一行中位于//之后直到行尾的所有内容都会被当作注释(因此会被编译器忽略)。单行注释的内容没有限制。

考虑:

        var a = 42;      // 42是生命的意义

多行注释/* .. */适用于在注释中需要多行解释的情况。

以下是多行注释常用的一个场景:

        /* 使用下面的值是因为
          可以看到它回答了
          宇宙中所有的问题 */
        var a = 42;

多行注释也可以出现在行中的任意位置,甚至可以出现在行中间,因为*/会结束注释。如下所示:

        var a = /* 任意值 */ 42;


        console.log( a );    // 42

唯一不能出现在多行注释中的是*/,因为这会被解释为注释的结束。

开始学习编程时一定要养成注释代码的习惯。在本章后面的内容中,你会看到我使用注释来进行解释,所以你在自己的练习中也应该这么做。相信我,如果你这么做的话,每个阅读你代码的人都会感谢你的!