首先要学习的就是写代码块。
语句
语句是执行操作的语法结构和指令。
我们写过的 alert(‘Hello, world!’) 就是一条语句,用来展示一条消息。
代码中可以包含很多语句,语句之间使用分号隔开。
比如,我们将“Hello World”分两次弹出显示:
alert('Hello'); alert('World');
通常,每条语句都是单独一行,这也让代码更加可读:
alert('Hello');
alert('World');
分号
大多数情况下,有换行符的地方就可以省略分号。
比如这样:
alert('Hello')
alert('World')
JavaScript 有一个自动分号插入机制,默认会在换行符之后“隐式”添加一个分号,解释为一条语句。
大多数情况下,换行符暗示着一次分号插入。不过这里的“大多数情况下”并不表示“总是”!
在某些情况下,换行符并不意味着会自动插入分号。
例如:
alert(3 +
1
+ 2);
结果会输出 6。因为 JavaScript 没有在这里插入分号。很明显,如果这行以加号 “+” 结尾,它就是一个“不完整的表达式”,不需要插入分号更符合我们的预期。
但有些情况下,JavaScript 自动插入分号的结果,可能会导致代码运行“失败”。
这种情况下触发的错误很难找到和修复。
⚠️一个错误的例子
如果想要看到这样一个错误的具体示例,请看以下代码:
[1, 2].forEach(alert)
不需要考虑括号 [] 和 forEach 的含义,我们之后会学习到,现在并不需要关心。我们只要知道结果:先显示 1,再显示 2。
现在,我们在代码之前添加一个 alert,没用分号结尾:
alert("There will be an error")
[1, 2].forEach(alert)
现在运行代码,会显示第一个 alert,接着就报错了!
如果我们在 alert 之后添加一个分号,就没有问题:
alert("All fine now");
[1, 2].forEach(alert)
现在我们有了“All fine now”的信息,接着也输出了 1 和 2。
没有分号时触发错误的原因是因为 JavaScript 在方括号 […] 之前并不会添加分号。
因此,第一个例子中的代码被当作一条语句进行处理。引擎会这么解释代码:
alert("There will be an error")[1, 2].forEach(alert)
但我们期望是作为两条单独的语句。这种情况下,合并成一条会导致错误。
所以,通常的建议是在语句之后添加分号,即使写成了多行。这个实践也被社区广泛采用。总结下来,编码时分号是可以省略的,但更安全的做法是写上分号来明确分隔语句,这对初学者也更加友好。
注释
随着时间的推移,程序会变得越来越复杂。有时候就需要通过注释的方式描述发生了什么以及为什么要这样写。
注释可以放在脚本的任何位置,不会影响代码执行,因为引擎会忽略它们。
单行注释使用双斜杠字符表示 **//**
。
双斜杠后面的部分皆为注释内容。它可能会占据一个完整的行,或者跟在一个某条语句之后。
// 这条注释占据一行
alert('Hello');
alert('World'); // 这条注释跟在一个语句后面
多行注释以一个斜杠和一个星号开始 **/***
,以星号和正斜杠结尾 ***/**
,两个符号中间的部分都是注释。
/* 带有两条显示消息的例子,
这里是多行注释
*/
alert('Hello');
alert('World');
注释的内容被引擎忽略,放入 /* ... */
之间的代码不会被执行。
这对临时禁用部分代码很便捷:
/* 注释代码
alert('Hello');
*/
alert('World');
⚠️使用快捷键
大多数编辑器中,可以使用快捷键 Ctrl+/ 添加单行注释,用 Ctrl+Shift+/ 添加多行注释(选择一段代码并按下快捷键)。对 Mac 用户来说,就要使用 Cmd 键替代 Windows 下的 Ctrl 键。
⚠️不支持嵌套注释!
/ … / 里不能再嵌套另一个 / … / 了。
否则会产生错误:
/*
/* 嵌套注释不支持! */
*/
alert( 'World' );
请不要犹豫是否要注释代码。
注释增加了总体代码的体积,但这根本不是问题。发布到生产服务器之前,有许多工具可以将代码压缩,删掉注释,因此注释不会出现在生产环境脚本中。所以,注释对生产没有任何负面影响。
这套教程里有一篇《编码风格》,探讨如何写好注释。
(完)
📄 文档信息
🕘 更新时间:2021/09/16
🔗 原文链接:https://javascript.info/structure