- JavaScript编程精解(原书第3版)
- (美)马尔奇·哈弗贝克
- 687字
- 2023-06-21 17:54:32
2.9 条件执行
并非所有程序都是直道。例如,我们可能想要创建一条分支道路,其中程序根据当前条件采用适当的分支。这称为条件执行。
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0035_0005.jpg?sign=1739419441-1vCwLCXTRtljMTNXeKeqZgf882PZyVO4-0-ad51886b47c54a909ae815da8b81baf6)
使用JavaScript中的if关键字产生条件执行。在简单的情况下,我们希望在某种条件成立时(并且仅当某种条件成立时)执行某些代码。例如,我们可能只想在输入实际上是一个数字时才显示输入的平方。
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0036_0001.jpg?sign=1739419441-Xp8ij9h7QqVFEYxFfwVgrxWuqR2vgzzc-0-9943a283db952760424c010a74955a32)
通过此修改,如果输入"parrot",则不显示输出。
if关键字根据布尔表达式的值执行或跳过语句。在关键字之后、括号之间编写条件表达式,后跟要执行的语句。
Number.isNaN函数是一个标准的JavaScript函数,仅当给定的参数为NaN时才返回true。当你为Number函数提供不表示有效数字的字符串时,Number恰好返回NaN。因此,条件转换为“除非theNumber不是数字,否则执行此操作”。
在此示例中,if之后的语句用大括号({和})括起来。大括号可用于将任意数量的语句打捆到称为块的单个语句中。在本例中,你也可以省略它们,因为它们之间只包含一个语句,但为了避免考虑是否需要它们,大多数JavaScript程序员在像这样的每个包装语句中都使用大括号。在这本书中,我们基本上将遵守这个约定,除了偶尔出现的单行语句。
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0036_0002.jpg?sign=1739419441-TV4hqWjbWB6HsS05jXP2uctMklmzBNoR-0-91bd09f3173a9f71b9ece0056c2f96c7)
通常,你不仅拥有在条件为true时执行的代码,而且还具有处理其他情况的代码。此备用路径由关系图中的第二个箭头代表。你可以使用else关键字以及if来创建两个单独的备用执行路径。
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0036_0003.jpg?sign=1739419441-ZqLBN5lROggW4EaFWzXtfwuCZBfy6uN7-0-b305ab8a4dc6aba98307238aa244c51a)
如果你有两条以上的路径可供选择,则可以将多个if/else对“链接”在一起。下面是一个示例:
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0036_0004.jpg?sign=1739419441-hZVwWnDv6CyvPnovgUmxZ3a64muzkFAt-0-2d3f5e5934cfc5f0247156b582f10ceb)
程序将首先检查num是否小于10。如果是,它将选择此分支,显示"Small",并结束。如果不是,它采用else分支,它本身包含第二个if。如果第二个条件(< 100)成立,这意味着数字介于10和100之间,那么显示"Medium";否则,选择第二个也是最后一个else分支。
此程序的架构如下所示:
![](https://epubservercos.yuewen.com/8B8394/16679181805565906/epubprivate/OEBPS/Images/figure_0037_0001.jpg?sign=1739419441-352LPu72Yn2nXb5I13JtIgk5ivFbsvfk-0-eba46e3cf2cd3df4e3be5e6e34e0739a)