首先要学习的就是写代码块。

语句

语句是执行操作的语法结构和指令。

我们写过的 alert(‘Hello, world!’) 就是一条语句,用来展示一条消息。

代码中可以包含很多语句,语句之间使用分号隔开。

比如,我们将“Hello World”分两次弹出显示:

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

通常,每条语句都是单独一行,这也让代码更加可读:

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

分号

大多数情况下,有换行符的地方就可以省略分号。

比如这样:

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

JavaScript 有一个自动分号插入机制,默认会在换行符之后“隐式”添加一个分号,解释为一条语句。

大多数情况下,换行符暗示着一次分号插入。不过这里的“大多数情况下”并不表示“总是”!

在某些情况下,换行符并不意味着会自动插入分号。

例如:

  1. alert(3 +
  2. 1
  3. + 2);

结果会输出 6。因为 JavaScript 没有在这里插入分号。很明显,如果这行以加号 “+” 结尾,它就是一个“不完整的表达式”,不需要插入分号更符合我们的预期。

但有些情况下,JavaScript 自动插入分号的结果,可能会导致代码运行“失败”。

这种情况下触发的错误很难找到和修复。

⚠️一个错误的例子

如果想要看到这样一个错误的具体示例,请看以下代码:

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

不需要考虑括号 [] 和 forEach 的含义,我们之后会学习到,现在并不需要关心。我们只要知道结果:先显示 1,再显示 2。

现在,我们在代码之前添加一个 alert,没用分号结尾:

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

现在运行代码,会显示第一个 alert,接着就报错了!

如果我们在 alert 之后添加一个分号,就没有问题:

  1. alert("All fine now");
  2. [1, 2].forEach(alert)

现在我们有了“All fine now”的信息,接着也输出了 1 和 2。

没有分号时触发错误的原因是因为 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');

注释的内容被引擎忽略,放入 /* ... */ 之间的代码不会被执行。

这对临时禁用部分代码很便捷:

  1. /* 注释代码
  2. alert('Hello');
  3. */
  4. alert('World');

⚠️使用快捷键

大多数编辑器中,可以使用快捷键 Ctrl+/ 添加单行注释,用 Ctrl+Shift+/ 添加多行注释(选择一段代码并按下快捷键)。对 Mac 用户来说,就要使用 Cmd 键替代 Windows 下的 Ctrl 键。

⚠️不支持嵌套注释!

// 里不能再嵌套另一个 // 了。

否则会产生错误:

  1. /*
  2. /* 嵌套注释不支持! */
  3. */
  4. alert( 'World' );

请不要犹豫是否要注释代码。

注释增加了总体代码的体积,但这根本不是问题。发布到生产服务器之前,有许多工具可以将代码压缩,删掉注释,因此注释不会出现在生产环境脚本中。所以,注释对生产没有任何负面影响。

这套教程里有一篇《编码风格》,探讨如何写好注释。

(完)


📄 文档信息

🕘 更新时间:2021/09/16
🔗 原文链接:https://javascript.info/structure