手机店店员可能会写下一些笔记,记下新出的手机的特性或者他们公司推出的新套餐。这些笔记仅仅是给店员使用的 —— 他们不是给顾客读的。不管怎样,通过记录下为什么和如何告诉顾客他应当说的东西,这些笔记帮助店员更好的工作。

    关于编写代码你要学的最重要的课程之一,就是它不仅仅是写给计算机的。代码的每一个字节都和写给编译器一样,也是写给开发者的。

    你的计算机只关心机器码,一系列源自 编译 的0和1。你几乎可以写出无限多种可以产生相同0和1序列的代码。所以你对如何编写程序作出的决定很重要 —— 不仅是对你,也对你的团队中的其他成员,甚至是你未来的自己。

    你不仅应当努力去编写可以正确工作的程序,而且应当努力编写检视起来有道理的程序。你可以通过给变量(见“变量”)和函数(见“函数”)起一个好名字在这条路上走很远。

    但另外一个重要的部分是代码注释。它们纯粹是为了向人类解释一些事情而在你的程序中插入的一点儿文本。解释器/编译器将总是忽略这些注释。

    关于什么是良好注释的代码有许多意见;我们不能真正地定义绝对统一的规则。但是一些意见和指导是十分有用的:

    • 没有注释的代码是次优的。
    • 过多的注释(比如,每行都有注释)可能是代码编写的很烂的标志。
    • 注释应当解释 为什么,而不是 是什么。它们可以选择性地解释 如何做,如果代码特别令人困惑的话。

    在JavaScript中,有两种可能的注释类型:单行注释和多行注释

    考虑如下代码:

    1. // 这是一个单行注释
    2. /* 而这是
    3. 一个多行
    4. 注释。
    5. */

    如果你想在一个语句的正上方,或者甚至是在行的末尾加一个注释,//单行注释是很合适的。这一行上//之后的所有东西都将被视为注释(因此被编译器忽略),一直到行的末尾。在单行注释内部可以出现的内容没有限制。

    考虑:

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

    如果你想在注释中用好几行来解释一些事情,/* .. */多行注释就很合适。

    这是多行注释的一个常见用法:

    1. /* 使用下面的值是因为
    2. 它回答了
    3. 全宇宙中所有的问题。 */
    4. var a = 42;

    它还可以出现在一行中的任意位置,甚至是一行的中间,因为*/终结了它。例如:

    1. var a = /* 随机值 */ 42;
    2. console.log( a ); // 42

    在多行注释中唯一不能出现的就是*/,因为这将干扰注释的结尾。

    你绝对会希望通过养成注释代码的习惯来开始学习编程。在本书剩余的部分中,你将看到我使用注释来解释事情,请也在你自己的实践中这么做。相信我,所有阅读你的代码的人都会感谢你!