JavaScript编程精解(原书第3版)
上QQ阅读APP看书,第一时间看更新

2.1 表达式和语句

在第1章中,我们造了一些值并应用运算符来获取新值。任何JavaScript程序的主要内容都是像这样创建值。但是,这种东西必须放在一个更大的结构中才能发挥作用。因此,我们接下来就要介绍这些内容。

生成值的代码片段称为表达式。字面上写的每一个值(如22或"psychoanalysis")都是一种表达式。括号之间的表达式也是一个表达式,把二元运算符应用于两个表达式或把一元运算符应用于一个表达式形成的东西也都是表达式。

这显示了基于语言的界面的一部分美妙之处。表达式可以用类似于子句的方式包含其他表达式,人类语言中的子句是嵌套的—— 子句还可以包含它自己的子句,等等。这使我们能够构建描述任意复杂计算的表达式。

如果表达式对应于句子片段,JavaScript语句就对应于完整的句子。程序则是语句的列表。

最简单的语句类型是后面带有分号的表达式。下面是一个程序:

不过,这只是一个无用的程序。表达式的内容可以是只生成一个值,然后由封闭代码使用此值。语句是独立的,所以只有当它影响到世界时,它才有某种意义。它可以在屏幕上显示一些东西,这算是改变世界,或者它可能会改变机器的内部状态,从而影响它之后的语句。这些变化称为副作用。上例中的语句只生成值1和true,然后立即将它们丢弃。这根本没给世界留下什么印象。运行此程序时,不会发生任何可观察到的情况。

在有些情况下,JavaScript允许你省略语句末尾的分号。在有些情况下,分号必须存在,否则下一行将被视为同一语句的一部分。何时可以安全地省略分号,规则有点复杂,容易出错。所以在这本书里,每一个需要分号的语句后面总是带一个分号。我建议你也这样做,至少在你更多地了解省略分号的细节之前都这么做。