表达式和语句

在第 1 章中,我们为它们创建了值,并应用了运算符来获得新的值。 像这样创建值是任何 JavaScript 程序的主要内容。 但是,这种东西必须在更大的结构中构建,才能发挥作用。 这就是我们接下来要做的。

我们把产生值的操作的代码片段称为表达式。按照字面含义编写的值(比如22"psychoanalysis")都是一个表达式。而括号当中的表达式、使用二元运算符连接的表达式或使用一元运算符的表达式,仍然都是表达式。

这展示了一部分基于语言的接口之美。 表达式可以包含其他表达式,其方式非常类似于人类语言的从句嵌套 - 从句可以包含它自己的从句,依此类推。 这允许我们构建描述任意复杂计算的表达式。

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

最简单的一条语句由一个表达式和其后的分号组成。比如这就是一个程序:

  1. 1;
  2. !false;

不过,这是一个无用的程序。 表达式可以仅仅满足于产生一个值,然后可以由闭合的代码使用。 一个声明是独立存在的,所以它只有在影响到世界的时候才会成立。 它可以在屏幕上显示某些东西 - 这可以改变世界 - 或者它可以改变机器的内部状态,从而影响后面的语句。 这些变化被称为副作用。 前面例子中的语句仅仅产生值1true,然后立即将它们扔掉。 这给世界没有留下什么印象。 当你运行这个程序时,什么都不会发生。

在某些情况下,JavaScript 允许您在语句结尾处省略分号。 在其他情况下,它必须在那里,否则下一行将被视为同一语句的一部分。 何时可以安全省略它的规则有点复杂且容易出错。 所以在本书中,每一个需要分号的语句都会有分号。 至少在你更了解省略分号的细节之前,我建议你也这样做。