1. 判断条件和条件语句

  1. 判断由两部分组成
    1. 一个进行判断的表达式,它会返回一个值
    2. 一个条件语句,用于说明在某种特定情况下应该执行什么操作
  2. 为了完成判断,代码会检查脚本的当前状态。通常会使用比较操作对两个值进行比较,然后返回 true/false 作为判断条件。
  3. 条件语句基于如果(if)/那么(then)/否则(else)这样的概念来工作。如果(if)满足某个条件,那么(then)代码执行一条或多条语句,否则(else)执行其他语句(或跳过这个步骤)。
1
2
3
4
5
if (a > 10) {
    alert("不是个位数");
} else {
    alert("个位数");
}
  1. 可以将两个或多个比较操作符组合起来一起形成多个条件。

2. 比较操作符:判断条件

  1. 可以在脚本中通过比较一个值和你期望的值来进行条件判断,其结果会是布尔类型:true 或 false。
  2. 程序员把测试或检查条件叫做判断条件,条件可以非常复杂,但是都会返回 true 或 false。
  3. == 等于操作符比较两个值是否相等。
  4. != 不等于操作符比较两个值是否不同。
  5. === 严格等于操作符比较两个值,并检查它们的数据类型和值是否完全相同。
  6. !== 严格不等于操作符比较两个值,并检查它们的数据类型和值是否不完全相同。
  7. > 大于操作符会检查左边的数字是否大于右边的数字。
  8. < 小于操作符会检查左边的数字是否小于右边的数字。
  9. <= 小于等于操作符会检查左边的数字是否小于等于右边的数字。
  10. >= 大于等于操作符会检查左边的数字是否大于等于右边的数字。

3. 在算术操作符中使用表达式

  1. 操作数不一定必须是数值或者变量名,也可以是表达式。
1
((a+b)<(c+d))

4. 逻辑操作符

  1. 逻辑操作符允许将多个比较操作符的结果放在一起进行比较。
1
((5<3)&&(2>3))
  1. && 逻辑与操作符检测如果两个表达式结果是 true,那么返回 true,否则返回 false。
  2. || 逻辑或操作符检测至少一个条件为 true,那么返回 true,否则返回 false。
  3. ! 逻辑非操作符操作单一的布尔变量,并对它的结果取反。
  4. 短路条件:逻辑表达式会从左到右进行计算,如果一个条件能确认最终的结果,那么后面的条件就不会被执行。

5. if 语句

  1. if 语句会对一个条件进行判断,如果这个条件的结果为 true,就会执行后续代码块中的代码。
  2. 如果条件的结果是 false,后续代码块中的语句不会被执行,脚本会继续执行这个代码块后面的语句。
1
2
3
4
if (a < b) {
    ...
}
...

6. if-else 语句

  1. if-else 语句同样用来条件判断。
  2. 如果条件的结果是 true,那么第一个代码块会被执行。
  3. 如果条件的结果是 false,那么执行第二个代码块中的内容。
1
2
3
4
5
if (a > b) {
    ...
} else {
    ...
}

7. switch 语句

  1. switch 语句的开头是一个被称为分支值的变量,每个 case 表示一个条件,当条件的值和这个变量的值相匹配时,它后面的代码就会被执行。
  2. 如果以上情况都不匹配,则会执行 default 语句块中的内容。
  3. 在每个 case 的最后由一个 break 关键字。它会告诉 JavaScript 解释器 switch 语句已经执行完毕,继续执行 switch 后面的内容。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
switch (color) {
    case 'blue':
        res = 'b';
        break;
    case 'red':
        res = 'r';
        break;
    default:
        res = 'null';
        break;
}

8. 强制类型转换和弱类型

  1. 如果使用的数据类型和 JavaScript 所需的类型不一致,那么他会尽量使这个操作变得有意义,而不是直接报错。
  2. 例如,在表达式 '1'>0 中,解释器会将字符串 '1' 转换为数字 1
  3. JavaScript 也被称为弱类型语言,因为值的数据类型是可以变的。
  4. 例如 Java、C++ 这样的语言被称为强类型语言,因为它们需要指定每个变量的数据类型。
  5. 强制类型转换可能会导致意外错误,因此,推荐使用 ===!== 来执行相等判断。

9. 真值和假值

  1. 因为存在强制类型转换,JavaScript 中的每个值都可以被当作 true 或 false。
  2. 以下几种情况对应假值:
说明
false布尔值 false
0数字 0
''空字符串
10/‘xx’NaN
undefinedundefined
  1. 以下经济中情况对应真值:
说明
true布尔值 true
1非 0 数字
‘aaa’/‘false’/‘0’非空字符串
10-2非 0 的表达式

10. 循环

  1. 循环会检查一个条件,如果这个条件返回 true,那么会执行一段响应的代码。
  2. 之后这个条件会再次被检查,如果依然返回 true,那么这段代码会再次被执行。
  3. 以上过程会一直重复,直到条件返回 false。

10.1. for 循环

  1. for 循环使用计数器作为条件。
  2. 这种方式会让代码执行指定的次数。
  3. 这个条件是由三条语句组成的。
1
2
3
for (var i = 0; i < 10; i++) {
    sum = sum + i;
}
  1. 初始化:创建一个变量,然后赋值为 0,这个变量起到计数器的作用,通常只在循环第一次运行的时候被创建。
  2. 条件:循环会一直执行下去,直到第一个分号后的语句执行结果为 false。
  3. 更新:每次循环执行完成后,第三个语句会被执行,并更新计数器的值。

10.2. break 和 continue

  1. break 关键字会导致循环结束,然后通知解释器继续执行循环体之外的代码。
  2. continue 关键字会通知解释器立即执行下一个循环迭代,然后进行条件检查。

10.3. while 循环

  1. 如果不确定代码会被执行多少次,可以使用 while 循环。
  2. 只要 while 后的括号中的条件表达式结果不为 false,花括号中的循环体就会一直被执行下去。
1
2
3
4
5
var sum = 0;
while (sum < 10) {
    sum += sum;
    sum ++;
}

10.4. do-while 循环

  1. do-while 循环和 while 循环类似。
  2. 区别在于,do-while 循环会先执行循环体,再执行条件判断,也就是说循环体会至少被执行一次。
1
2
3
4
5
var sum = 0;
do {
    sum += sum;
    sum ++;
} while (sum < 10);