我们将要学习的第一个内容就是构建代码块。

语句

语句是执行行为(action)的语法结构命令
我们可以在代码中编写任意数量的语句。语句之间可以使用分号进行分割
例如,我们将 “Hello World” 这条信息一分为二:

  1. alert('Hello'); alert('World');

通常,每条语句独占一行,以提高代码的可读性:

  1. alert('Hello');
  2. alert('World');

分号

当存在换行符(line break)时,在大多数情况下可以省略分号。
下面的代码也是可以运行的:

  1. alert('Hello') alert('World')

在这,JavaScript 将换行符理解成“隐式”的分号。这也被称为 自动分号插入
在大多数情况下,换行意味着一个分号。但是“大多数情况”并不意味着“总是”!

一个错误的例子

如果你好奇地想知道一个这种错误的具体例子,那你可以看看下面这段代码:

  1. [1, 2].forEach(alert)

这段代码的运行结果:先显示 1,然后显示 2。
现在我们在代码前面插入一个 alert 语句,并且不加分号:

  1. alert("There will be an error") [1, 2].forEach(alert)

现在,如果我们运行代码,只有第一个 alert 语句的内容被显示了出来,随后我们收到了一个错误!
但是,如果我们在第一个 alert 语句末尾加上一个分号,就工作正常了:

  1. alert("All fine now"); [1, 2].forEach(alert) // 现在,我们能得到 “All fine now”,然后是 1 和 2。

无分号的变体(variant)会出现报错,是因为 JavaScript 并不会在方括号 […] 前添加一个隐式的分号。
所以,因为没有自动插入分号,第一个例子中的代码被视为了一条简单的语句,我们从引擎看到的是这样的:

  1. alert("There will be an error")[1, 2].forEach(alert)

但它应该是两条语句,而不是一条。这种情况下的合并是不对的,所以才会造成错误。诸如此类,还有很多。

即使语句被换行符分隔了,依然建议在它们之间加分号。这个规则被社区广泛采用。
大部分时候可以省略分号,但是最好不要省略分号,尤其对新手来说。

注释

注释 用来描述代码做了什么和为什么要这样做
你可以在脚本的任何地方添加注释,它们并不会影响代码的执行,因为引擎会直接忽略它们。

单行注释以两个正斜杠字符 // 开始。
这一行的剩余部分是注释。它可能独占一行或者跟随在一条语句的后面

  1. // 这行注释独占一行
  2. alert('Hello');
  3. alert('World'); // 这行注释跟随在语句后面

多行注释以一个正斜杠和星号开始 “/” 并以一个星号和正斜杠结束 “/”。

  1. /* 两个消息的例子。
  2. 这是一个多行注释。
  3. */
  4. alert('Hello');
  5. alert('World');