学习JavaScript数据结构与算法(第3版)
上QQ阅读APP看书,第一时间看更新

1.4.1 条件语句

首先看一下如何构造if...else条件语句。有几种方式。

如果想让一个脚本在仅当条件(表达式)是true时执行,可以使用if语句,如下所示。

    var num = 1;
    if (num === 1) {
      console.log('num等于 1');
    }

如果想在条件为true的时候执行脚本A,在条件为false(else)的时候执行脚本B,可以使用if...else语句,如下所示。

    var num = 0;
    if (num === 1) {
      console.log('num等于 1');
    } else {
    }
      console.log('num不等于 1, num的值是 ’ + num);
    }

if...else语句也可以用三元运算符替换,例如下面的if...else语句。

    if (num === 1) {
      num--;
    } else {
      num++;
    }

可以用三元运算符替换为:

    (num === 1) ? num-- : num++;

如果我们有多个脚本,可以多次使用if...else,根据不同的条件执行不同的语句。

    var month = 5;
    if (month === 1) {
      console.log(’一月’);
    } else if (month === 2) {
      console.log(’二月’);
    } else if (month === 3) {
      console.log(’三月’);
    } else {
      console.log(’月份不是一月、二月或三月’);
    }

最后,还有switch语句。如果要判断的条件和上面的一样(但要和不同的值进行比较),可以使用swtich语句。

    var month = 5;
    switch (month) {
      case 1:
        console.log('January');
        break;
      case 2:
        console.log('February');
        break;
      case 3:
        console.log('March');
        break;
      default:
        console.log('Month is not January, February or March');
    }

对于switch语句来说,case和break关键字的用法很重要。case判断当前switch的值是否和case分支语句的值相等。break会中止switch语句的执行。没有break会导致执行完当前的case后,继续执行下一个case,直到遇到break或switch执行结束。最后,还有default关键字,在表达式不匹配前面任何一种情形的时候,就执行default中的代码(如果有对应的,就不会执行)。