
2.9 条件执行
并非所有程序都是直道。例如,我们可能想要创建一条分支道路,其中程序根据当前条件采用适当的分支。这称为条件执行。

使用JavaScript中的if关键字产生条件执行。在简单的情况下,我们希望在某种条件成立时(并且仅当某种条件成立时)执行某些代码。例如,我们可能只想在输入实际上是一个数字时才显示输入的平方。

通过此修改,如果输入"parrot",则不显示输出。
if关键字根据布尔表达式的值执行或跳过语句。在关键字之后、括号之间编写条件表达式,后跟要执行的语句。
Number.isNaN函数是一个标准的JavaScript函数,仅当给定的参数为NaN时才返回true。当你为Number函数提供不表示有效数字的字符串时,Number恰好返回NaN。因此,条件转换为“除非theNumber不是数字,否则执行此操作”。
在此示例中,if之后的语句用大括号({和})括起来。大括号可用于将任意数量的语句打捆到称为块的单个语句中。在本例中,你也可以省略它们,因为它们之间只包含一个语句,但为了避免考虑是否需要它们,大多数JavaScript程序员在像这样的每个包装语句中都使用大括号。在这本书中,我们基本上将遵守这个约定,除了偶尔出现的单行语句。

通常,你不仅拥有在条件为true时执行的代码,而且还具有处理其他情况的代码。此备用路径由关系图中的第二个箭头代表。你可以使用else关键字以及if来创建两个单独的备用执行路径。

如果你有两条以上的路径可供选择,则可以将多个if/else对“链接”在一起。下面是一个示例:

程序将首先检查num是否小于10。如果是,它将选择此分支,显示"Small",并结束。如果不是,它采用else分支,它本身包含第二个if。如果第二个条件(< 100)成立,这意味着数字介于10和100之间,那么显示"Medium";否则,选择第二个也是最后一个else分支。
此程序的架构如下所示:
